var $protobuf = window.protobuf;
$protobuf.roots.default=window;
// Common aliases
var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;

// Exported root namespace
var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});

$root.awesomepackage = (function() {

    /**
     * Namespace awesomepackage.
     * @exports awesomepackage
     * @namespace
     */
    var awesomepackage = {};

    awesomepackage.AwesomeMessage = (function() {

        /**
         * Properties of an AwesomeMessage.
         * @memberof awesomepackage
         * @interface IAwesomeMessage
         * @property {number} meesageId AwesomeMessage meesageId
         * @property {Uint8Array|null} [data] AwesomeMessage data
         */

        /**
         * Constructs a new AwesomeMessage.
         * @memberof awesomepackage
         * @classdesc Represents an AwesomeMessage.
         * @implements IAwesomeMessage
         * @constructor
         * @param {awesomepackage.IAwesomeMessage=} [properties] Properties to set
         */
        function AwesomeMessage(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * AwesomeMessage meesageId.
         * @member {number} meesageId
         * @memberof awesomepackage.AwesomeMessage
         * @instance
         */
        AwesomeMessage.prototype.meesageId = 0;

        /**
         * AwesomeMessage data.
         * @member {Uint8Array} data
         * @memberof awesomepackage.AwesomeMessage
         * @instance
         */
        AwesomeMessage.prototype.data = $util.newBuffer([]);

        /**
         * Creates a new AwesomeMessage instance using the specified properties.
         * @function create
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {awesomepackage.IAwesomeMessage=} [properties] Properties to set
         * @returns {awesomepackage.AwesomeMessage} AwesomeMessage instance
         */
        AwesomeMessage.create = function create(properties) {
            return new AwesomeMessage(properties);
        };

        /**
         * Encodes the specified AwesomeMessage message. Does not implicitly {@link awesomepackage.AwesomeMessage.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {awesomepackage.IAwesomeMessage} message AwesomeMessage message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        AwesomeMessage.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.meesageId);
            if (message.data != null && message.hasOwnProperty("data"))
                writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.data);
            return writer;
        };

        /**
         * Encodes the specified AwesomeMessage message, length delimited. Does not implicitly {@link awesomepackage.AwesomeMessage.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {awesomepackage.IAwesomeMessage} message AwesomeMessage message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        AwesomeMessage.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes an AwesomeMessage message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.AwesomeMessage} AwesomeMessage
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        AwesomeMessage.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.AwesomeMessage();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.meesageId = reader.int32();
                    break;
                case 2:
                    message.data = reader.bytes();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("meesageId"))
                throw $util.ProtocolError("missing required 'meesageId'", { instance: message });
            return message;
        };

        /**
         * Decodes an AwesomeMessage message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.AwesomeMessage} AwesomeMessage
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        AwesomeMessage.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies an AwesomeMessage message.
         * @function verify
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        AwesomeMessage.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.meesageId))
                return "meesageId: integer expected";
            if (message.data != null && message.hasOwnProperty("data"))
                if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
                    return "data: buffer expected";
            return null;
        };

        /**
         * Creates an AwesomeMessage message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.AwesomeMessage} AwesomeMessage
         */
        AwesomeMessage.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.AwesomeMessage)
                return object;
            var message = new $root.awesomepackage.AwesomeMessage();
            if (object.meesageId != null)
                message.meesageId = object.meesageId | 0;
            if (object.data != null)
                if (typeof object.data === "string")
                    $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
                else if (object.data.length)
                    message.data = object.data;
            return message;
        };

        /**
         * Creates a plain object from an AwesomeMessage message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {awesomepackage.AwesomeMessage} message AwesomeMessage
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        AwesomeMessage.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.meesageId = 0;
                object.data = options.bytes === String ? "" : [];
            }
            if (message.meesageId != null && message.hasOwnProperty("meesageId"))
                object.meesageId = message.meesageId;
            if (message.data != null && message.hasOwnProperty("data"))
                object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
            return object;
        };

        /**
         * Converts this AwesomeMessage to JSON.
         * @function toJSON
         * @memberof awesomepackage.AwesomeMessage
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        AwesomeMessage.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return AwesomeMessage;
    })();

    awesomepackage.c2sLogin = (function() {

        /**
         * Properties of a c2sLogin.
         * @memberof awesomepackage
         * @interface Ic2sLogin
         * @property {string} account c2sLogin account
         * @property {string} sign c2sLogin sign
         * @property {string} headimg c2sLogin headimg
         * @property {string} name c2sLogin name
         * @property {string} sex c2sLogin sex
         * @property {number} userId c2sLogin userId
         */

        /**
         * Constructs a new c2sLogin.
         * @memberof awesomepackage
         * @classdesc Represents a c2sLogin.
         * @implements Ic2sLogin
         * @constructor
         * @param {awesomepackage.Ic2sLogin=} [properties] Properties to set
         */
        function c2sLogin(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sLogin account.
         * @member {string} account
         * @memberof awesomepackage.c2sLogin
         * @instance
         */
        c2sLogin.prototype.account = "";

        /**
         * c2sLogin sign.
         * @member {string} sign
         * @memberof awesomepackage.c2sLogin
         * @instance
         */
        c2sLogin.prototype.sign = "";

        /**
         * c2sLogin headimg.
         * @member {string} headimg
         * @memberof awesomepackage.c2sLogin
         * @instance
         */
        c2sLogin.prototype.headimg = "";

        /**
         * c2sLogin name.
         * @member {string} name
         * @memberof awesomepackage.c2sLogin
         * @instance
         */
        c2sLogin.prototype.name = "";

        /**
         * c2sLogin sex.
         * @member {string} sex
         * @memberof awesomepackage.c2sLogin
         * @instance
         */
        c2sLogin.prototype.sex = "";

        /**
         * c2sLogin userId.
         * @member {number} userId
         * @memberof awesomepackage.c2sLogin
         * @instance
         */
        c2sLogin.prototype.userId = 0;

        /**
         * Creates a new c2sLogin instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sLogin
         * @static
         * @param {awesomepackage.Ic2sLogin=} [properties] Properties to set
         * @returns {awesomepackage.c2sLogin} c2sLogin instance
         */
        c2sLogin.create = function create(properties) {
            return new c2sLogin(properties);
        };

        /**
         * Encodes the specified c2sLogin message. Does not implicitly {@link awesomepackage.c2sLogin.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sLogin
         * @static
         * @param {awesomepackage.Ic2sLogin} message c2sLogin message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sLogin.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 2 =*/10).string(message.account);
            writer.uint32(/* id 2, wireType 2 =*/18).string(message.sign);
            writer.uint32(/* id 3, wireType 2 =*/26).string(message.headimg);
            writer.uint32(/* id 4, wireType 2 =*/34).string(message.name);
            writer.uint32(/* id 5, wireType 2 =*/42).string(message.sex);
            writer.uint32(/* id 6, wireType 0 =*/48).int32(message.userId);
            return writer;
        };

        /**
         * Encodes the specified c2sLogin message, length delimited. Does not implicitly {@link awesomepackage.c2sLogin.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sLogin
         * @static
         * @param {awesomepackage.Ic2sLogin} message c2sLogin message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sLogin.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sLogin message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sLogin
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sLogin} c2sLogin
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sLogin.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sLogin();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.account = reader.string();
                    break;
                case 2:
                    message.sign = reader.string();
                    break;
                case 3:
                    message.headimg = reader.string();
                    break;
                case 4:
                    message.name = reader.string();
                    break;
                case 5:
                    message.sex = reader.string();
                    break;
                case 6:
                    message.userId = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("account"))
                throw $util.ProtocolError("missing required 'account'", { instance: message });
            if (!message.hasOwnProperty("sign"))
                throw $util.ProtocolError("missing required 'sign'", { instance: message });
            if (!message.hasOwnProperty("headimg"))
                throw $util.ProtocolError("missing required 'headimg'", { instance: message });
            if (!message.hasOwnProperty("name"))
                throw $util.ProtocolError("missing required 'name'", { instance: message });
            if (!message.hasOwnProperty("sex"))
                throw $util.ProtocolError("missing required 'sex'", { instance: message });
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sLogin message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sLogin
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sLogin} c2sLogin
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sLogin.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sLogin message.
         * @function verify
         * @memberof awesomepackage.c2sLogin
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sLogin.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isString(message.account))
                return "account: string expected";
            if (!$util.isString(message.sign))
                return "sign: string expected";
            if (!$util.isString(message.headimg))
                return "headimg: string expected";
            if (!$util.isString(message.name))
                return "name: string expected";
            if (!$util.isString(message.sex))
                return "sex: string expected";
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            return null;
        };

        /**
         * Creates a c2sLogin message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sLogin
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sLogin} c2sLogin
         */
        c2sLogin.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sLogin)
                return object;
            var message = new $root.awesomepackage.c2sLogin();
            if (object.account != null)
                message.account = String(object.account);
            if (object.sign != null)
                message.sign = String(object.sign);
            if (object.headimg != null)
                message.headimg = String(object.headimg);
            if (object.name != null)
                message.name = String(object.name);
            if (object.sex != null)
                message.sex = String(object.sex);
            if (object.userId != null)
                message.userId = object.userId | 0;
            return message;
        };

        /**
         * Creates a plain object from a c2sLogin message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sLogin
         * @static
         * @param {awesomepackage.c2sLogin} message c2sLogin
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sLogin.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.account = "";
                object.sign = "";
                object.headimg = "";
                object.name = "";
                object.sex = "";
                object.userId = 0;
            }
            if (message.account != null && message.hasOwnProperty("account"))
                object.account = message.account;
            if (message.sign != null && message.hasOwnProperty("sign"))
                object.sign = message.sign;
            if (message.headimg != null && message.hasOwnProperty("headimg"))
                object.headimg = message.headimg;
            if (message.name != null && message.hasOwnProperty("name"))
                object.name = message.name;
            if (message.sex != null && message.hasOwnProperty("sex"))
                object.sex = message.sex;
            if (message.userId != null && message.hasOwnProperty("userId"))
                object.userId = message.userId;
            return object;
        };

        /**
         * Converts this c2sLogin to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sLogin
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sLogin.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sLogin;
    })();

    awesomepackage.s2cLogin = (function() {

        /**
         * Properties of a s2cLogin.
         * @memberof awesomepackage
         * @interface Is2cLogin
         * @property {number} userID s2cLogin userID
         * @property {number} errorCode s2cLogin errorCode
         * @property {Array.<awesomepackage.Ienmeys>|null} [enmeysConfig] s2cLogin enmeysConfig
         */

        /**
         * Constructs a new s2cLogin.
         * @memberof awesomepackage
         * @classdesc Represents a s2cLogin.
         * @implements Is2cLogin
         * @constructor
         * @param {awesomepackage.Is2cLogin=} [properties] Properties to set
         */
        function s2cLogin(properties) {
            this.enmeysConfig = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cLogin userID.
         * @member {number} userID
         * @memberof awesomepackage.s2cLogin
         * @instance
         */
        s2cLogin.prototype.userID = 0;

        /**
         * s2cLogin errorCode.
         * @member {number} errorCode
         * @memberof awesomepackage.s2cLogin
         * @instance
         */
        s2cLogin.prototype.errorCode = 0;

        /**
         * s2cLogin enmeysConfig.
         * @member {Array.<awesomepackage.Ienmeys>} enmeysConfig
         * @memberof awesomepackage.s2cLogin
         * @instance
         */
        s2cLogin.prototype.enmeysConfig = $util.emptyArray;

        /**
         * Creates a new s2cLogin instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cLogin
         * @static
         * @param {awesomepackage.Is2cLogin=} [properties] Properties to set
         * @returns {awesomepackage.s2cLogin} s2cLogin instance
         */
        s2cLogin.create = function create(properties) {
            return new s2cLogin(properties);
        };

        /**
         * Encodes the specified s2cLogin message. Does not implicitly {@link awesomepackage.s2cLogin.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cLogin
         * @static
         * @param {awesomepackage.Is2cLogin} message s2cLogin message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cLogin.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userID);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.errorCode);
            if (message.enmeysConfig != null && message.enmeysConfig.length)
                for (var i = 0; i < message.enmeysConfig.length; ++i)
                    $root.awesomepackage.enmeys.encode(message.enmeysConfig[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
            return writer;
        };

        /**
         * Encodes the specified s2cLogin message, length delimited. Does not implicitly {@link awesomepackage.s2cLogin.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cLogin
         * @static
         * @param {awesomepackage.Is2cLogin} message s2cLogin message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cLogin.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cLogin message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cLogin
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cLogin} s2cLogin
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cLogin.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cLogin();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.userID = reader.int32();
                    break;
                case 2:
                    message.errorCode = reader.int32();
                    break;
                case 3:
                    if (!(message.enmeysConfig && message.enmeysConfig.length))
                        message.enmeysConfig = [];
                    message.enmeysConfig.push($root.awesomepackage.enmeys.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("userID"))
                throw $util.ProtocolError("missing required 'userID'", { instance: message });
            if (!message.hasOwnProperty("errorCode"))
                throw $util.ProtocolError("missing required 'errorCode'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cLogin message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cLogin
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cLogin} s2cLogin
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cLogin.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cLogin message.
         * @function verify
         * @memberof awesomepackage.s2cLogin
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cLogin.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.userID))
                return "userID: integer expected";
            if (!$util.isInteger(message.errorCode))
                return "errorCode: integer expected";
            if (message.enmeysConfig != null && message.hasOwnProperty("enmeysConfig")) {
                if (!Array.isArray(message.enmeysConfig))
                    return "enmeysConfig: array expected";
                for (var i = 0; i < message.enmeysConfig.length; ++i) {
                    var error = $root.awesomepackage.enmeys.verify(message.enmeysConfig[i]);
                    if (error)
                        return "enmeysConfig." + error;
                }
            }
            return null;
        };

        /**
         * Creates a s2cLogin message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cLogin
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cLogin} s2cLogin
         */
        s2cLogin.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cLogin)
                return object;
            var message = new $root.awesomepackage.s2cLogin();
            if (object.userID != null)
                message.userID = object.userID | 0;
            if (object.errorCode != null)
                message.errorCode = object.errorCode | 0;
            if (object.enmeysConfig) {
                if (!Array.isArray(object.enmeysConfig))
                    throw TypeError(".awesomepackage.s2cLogin.enmeysConfig: array expected");
                message.enmeysConfig = [];
                for (var i = 0; i < object.enmeysConfig.length; ++i) {
                    if (typeof object.enmeysConfig[i] !== "object")
                        throw TypeError(".awesomepackage.s2cLogin.enmeysConfig: object expected");
                    message.enmeysConfig[i] = $root.awesomepackage.enmeys.fromObject(object.enmeysConfig[i]);
                }
            }
            return message;
        };

        /**
         * Creates a plain object from a s2cLogin message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cLogin
         * @static
         * @param {awesomepackage.s2cLogin} message s2cLogin
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cLogin.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.arrays || options.defaults)
                object.enmeysConfig = [];
            if (options.defaults) {
                object.userID = 0;
                object.errorCode = 0;
            }
            if (message.userID != null && message.hasOwnProperty("userID"))
                object.userID = message.userID;
            if (message.errorCode != null && message.hasOwnProperty("errorCode"))
                object.errorCode = message.errorCode;
            if (message.enmeysConfig && message.enmeysConfig.length) {
                object.enmeysConfig = [];
                for (var j = 0; j < message.enmeysConfig.length; ++j)
                    object.enmeysConfig[j] = $root.awesomepackage.enmeys.toObject(message.enmeysConfig[j], options);
            }
            return object;
        };

        /**
         * Converts this s2cLogin to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cLogin
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cLogin.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cLogin;
    })();

    awesomepackage.enmeys = (function() {

        /**
         * Properties of an enmeys.
         * @memberof awesomepackage
         * @interface Ienmeys
         * @property {number} type enmeys type
         * @property {number} hp enmeys hp
         * @property {number} price enmeys price
         * @property {number} speed enmeys speed
         * @property {number} getGold enmeys getGold
         * @property {number} cd enmeys cd
         */

        /**
         * Constructs a new enmeys.
         * @memberof awesomepackage
         * @classdesc Represents an enmeys.
         * @implements Ienmeys
         * @constructor
         * @param {awesomepackage.Ienmeys=} [properties] Properties to set
         */
        function enmeys(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * enmeys type.
         * @member {number} type
         * @memberof awesomepackage.enmeys
         * @instance
         */
        enmeys.prototype.type = 0;

        /**
         * enmeys hp.
         * @member {number} hp
         * @memberof awesomepackage.enmeys
         * @instance
         */
        enmeys.prototype.hp = 0;

        /**
         * enmeys price.
         * @member {number} price
         * @memberof awesomepackage.enmeys
         * @instance
         */
        enmeys.prototype.price = 0;

        /**
         * enmeys speed.
         * @member {number} speed
         * @memberof awesomepackage.enmeys
         * @instance
         */
        enmeys.prototype.speed = 0;

        /**
         * enmeys getGold.
         * @member {number} getGold
         * @memberof awesomepackage.enmeys
         * @instance
         */
        enmeys.prototype.getGold = 0;

        /**
         * enmeys cd.
         * @member {number} cd
         * @memberof awesomepackage.enmeys
         * @instance
         */
        enmeys.prototype.cd = 0;

        /**
         * Creates a new enmeys instance using the specified properties.
         * @function create
         * @memberof awesomepackage.enmeys
         * @static
         * @param {awesomepackage.Ienmeys=} [properties] Properties to set
         * @returns {awesomepackage.enmeys} enmeys instance
         */
        enmeys.create = function create(properties) {
            return new enmeys(properties);
        };

        /**
         * Encodes the specified enmeys message. Does not implicitly {@link awesomepackage.enmeys.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.enmeys
         * @static
         * @param {awesomepackage.Ienmeys} message enmeys message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        enmeys.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.hp);
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.price);
            writer.uint32(/* id 4, wireType 0 =*/32).int32(message.speed);
            writer.uint32(/* id 5, wireType 0 =*/40).int32(message.getGold);
            writer.uint32(/* id 6, wireType 0 =*/48).int32(message.cd);
            return writer;
        };

        /**
         * Encodes the specified enmeys message, length delimited. Does not implicitly {@link awesomepackage.enmeys.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.enmeys
         * @static
         * @param {awesomepackage.Ienmeys} message enmeys message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        enmeys.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes an enmeys message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.enmeys
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.enmeys} enmeys
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        enmeys.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.enmeys();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.type = reader.int32();
                    break;
                case 2:
                    message.hp = reader.int32();
                    break;
                case 3:
                    message.price = reader.int32();
                    break;
                case 4:
                    message.speed = reader.int32();
                    break;
                case 5:
                    message.getGold = reader.int32();
                    break;
                case 6:
                    message.cd = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("type"))
                throw $util.ProtocolError("missing required 'type'", { instance: message });
            if (!message.hasOwnProperty("hp"))
                throw $util.ProtocolError("missing required 'hp'", { instance: message });
            if (!message.hasOwnProperty("price"))
                throw $util.ProtocolError("missing required 'price'", { instance: message });
            if (!message.hasOwnProperty("speed"))
                throw $util.ProtocolError("missing required 'speed'", { instance: message });
            if (!message.hasOwnProperty("getGold"))
                throw $util.ProtocolError("missing required 'getGold'", { instance: message });
            if (!message.hasOwnProperty("cd"))
                throw $util.ProtocolError("missing required 'cd'", { instance: message });
            return message;
        };

        /**
         * Decodes an enmeys message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.enmeys
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.enmeys} enmeys
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        enmeys.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies an enmeys message.
         * @function verify
         * @memberof awesomepackage.enmeys
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        enmeys.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.type))
                return "type: integer expected";
            if (!$util.isInteger(message.hp))
                return "hp: integer expected";
            if (!$util.isInteger(message.price))
                return "price: integer expected";
            if (!$util.isInteger(message.speed))
                return "speed: integer expected";
            if (!$util.isInteger(message.getGold))
                return "getGold: integer expected";
            if (!$util.isInteger(message.cd))
                return "cd: integer expected";
            return null;
        };

        /**
         * Creates an enmeys message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.enmeys
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.enmeys} enmeys
         */
        enmeys.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.enmeys)
                return object;
            var message = new $root.awesomepackage.enmeys();
            if (object.type != null)
                message.type = object.type | 0;
            if (object.hp != null)
                message.hp = object.hp | 0;
            if (object.price != null)
                message.price = object.price | 0;
            if (object.speed != null)
                message.speed = object.speed | 0;
            if (object.getGold != null)
                message.getGold = object.getGold | 0;
            if (object.cd != null)
                message.cd = object.cd | 0;
            return message;
        };

        /**
         * Creates a plain object from an enmeys message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.enmeys
         * @static
         * @param {awesomepackage.enmeys} message enmeys
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        enmeys.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.type = 0;
                object.hp = 0;
                object.price = 0;
                object.speed = 0;
                object.getGold = 0;
                object.cd = 0;
            }
            if (message.type != null && message.hasOwnProperty("type"))
                object.type = message.type;
            if (message.hp != null && message.hasOwnProperty("hp"))
                object.hp = message.hp;
            if (message.price != null && message.hasOwnProperty("price"))
                object.price = message.price;
            if (message.speed != null && message.hasOwnProperty("speed"))
                object.speed = message.speed;
            if (message.getGold != null && message.hasOwnProperty("getGold"))
                object.getGold = message.getGold;
            if (message.cd != null && message.hasOwnProperty("cd"))
                object.cd = message.cd;
            return object;
        };

        /**
         * Converts this enmeys to JSON.
         * @function toJSON
         * @memberof awesomepackage.enmeys
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        enmeys.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return enmeys;
    })();

    awesomepackage.location = (function() {

        /**
         * Properties of a location.
         * @memberof awesomepackage
         * @interface Ilocation
         * @property {number} positionX location positionX
         * @property {number} positionY location positionY
         */

        /**
         * Constructs a new location.
         * @memberof awesomepackage
         * @classdesc Represents a location.
         * @implements Ilocation
         * @constructor
         * @param {awesomepackage.Ilocation=} [properties] Properties to set
         */
        function location(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * location positionX.
         * @member {number} positionX
         * @memberof awesomepackage.location
         * @instance
         */
        location.prototype.positionX = 0;

        /**
         * location positionY.
         * @member {number} positionY
         * @memberof awesomepackage.location
         * @instance
         */
        location.prototype.positionY = 0;

        /**
         * Creates a new location instance using the specified properties.
         * @function create
         * @memberof awesomepackage.location
         * @static
         * @param {awesomepackage.Ilocation=} [properties] Properties to set
         * @returns {awesomepackage.location} location instance
         */
        location.create = function create(properties) {
            return new location(properties);
        };

        /**
         * Encodes the specified location message. Does not implicitly {@link awesomepackage.location.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.location
         * @static
         * @param {awesomepackage.Ilocation} message location message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        location.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.positionX);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.positionY);
            return writer;
        };

        /**
         * Encodes the specified location message, length delimited. Does not implicitly {@link awesomepackage.location.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.location
         * @static
         * @param {awesomepackage.Ilocation} message location message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        location.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a location message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.location
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.location} location
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        location.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.location();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.positionX = reader.int32();
                    break;
                case 2:
                    message.positionY = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("positionX"))
                throw $util.ProtocolError("missing required 'positionX'", { instance: message });
            if (!message.hasOwnProperty("positionY"))
                throw $util.ProtocolError("missing required 'positionY'", { instance: message });
            return message;
        };

        /**
         * Decodes a location message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.location
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.location} location
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        location.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a location message.
         * @function verify
         * @memberof awesomepackage.location
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        location.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.positionX))
                return "positionX: integer expected";
            if (!$util.isInteger(message.positionY))
                return "positionY: integer expected";
            return null;
        };

        /**
         * Creates a location message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.location
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.location} location
         */
        location.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.location)
                return object;
            var message = new $root.awesomepackage.location();
            if (object.positionX != null)
                message.positionX = object.positionX | 0;
            if (object.positionY != null)
                message.positionY = object.positionY | 0;
            return message;
        };

        /**
         * Creates a plain object from a location message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.location
         * @static
         * @param {awesomepackage.location} message location
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        location.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.positionX = 0;
                object.positionY = 0;
            }
            if (message.positionX != null && message.hasOwnProperty("positionX"))
                object.positionX = message.positionX;
            if (message.positionY != null && message.hasOwnProperty("positionY"))
                object.positionY = message.positionY;
            return object;
        };

        /**
         * Converts this location to JSON.
         * @function toJSON
         * @memberof awesomepackage.location
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        location.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return location;
    })();

    awesomepackage.c2sReady = (function() {

        /**
         * Properties of a c2sReady.
         * @memberof awesomepackage
         * @interface Ic2sReady
         * @property {number} userID c2sReady userID
         */

        /**
         * Constructs a new c2sReady.
         * @memberof awesomepackage
         * @classdesc Represents a c2sReady.
         * @implements Ic2sReady
         * @constructor
         * @param {awesomepackage.Ic2sReady=} [properties] Properties to set
         */
        function c2sReady(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sReady userID.
         * @member {number} userID
         * @memberof awesomepackage.c2sReady
         * @instance
         */
        c2sReady.prototype.userID = 0;

        /**
         * Creates a new c2sReady instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sReady
         * @static
         * @param {awesomepackage.Ic2sReady=} [properties] Properties to set
         * @returns {awesomepackage.c2sReady} c2sReady instance
         */
        c2sReady.create = function create(properties) {
            return new c2sReady(properties);
        };

        /**
         * Encodes the specified c2sReady message. Does not implicitly {@link awesomepackage.c2sReady.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sReady
         * @static
         * @param {awesomepackage.Ic2sReady} message c2sReady message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sReady.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userID);
            return writer;
        };

        /**
         * Encodes the specified c2sReady message, length delimited. Does not implicitly {@link awesomepackage.c2sReady.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sReady
         * @static
         * @param {awesomepackage.Ic2sReady} message c2sReady message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sReady.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sReady message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sReady
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sReady} c2sReady
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sReady.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sReady();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.userID = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("userID"))
                throw $util.ProtocolError("missing required 'userID'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sReady message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sReady
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sReady} c2sReady
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sReady.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sReady message.
         * @function verify
         * @memberof awesomepackage.c2sReady
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sReady.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.userID))
                return "userID: integer expected";
            return null;
        };

        /**
         * Creates a c2sReady message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sReady
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sReady} c2sReady
         */
        c2sReady.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sReady)
                return object;
            var message = new $root.awesomepackage.c2sReady();
            if (object.userID != null)
                message.userID = object.userID | 0;
            return message;
        };

        /**
         * Creates a plain object from a c2sReady message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sReady
         * @static
         * @param {awesomepackage.c2sReady} message c2sReady
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sReady.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults)
                object.userID = 0;
            if (message.userID != null && message.hasOwnProperty("userID"))
                object.userID = message.userID;
            return object;
        };

        /**
         * Converts this c2sReady to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sReady
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sReady.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sReady;
    })();

    awesomepackage.s2cReady = (function() {

        /**
         * Properties of a s2cReady.
         * @memberof awesomepackage
         * @interface Is2cReady
         * @property {number} errorCode s2cReady errorCode
         * @property {number} userID s2cReady userID
         */

        /**
         * Constructs a new s2cReady.
         * @memberof awesomepackage
         * @classdesc Represents a s2cReady.
         * @implements Is2cReady
         * @constructor
         * @param {awesomepackage.Is2cReady=} [properties] Properties to set
         */
        function s2cReady(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cReady errorCode.
         * @member {number} errorCode
         * @memberof awesomepackage.s2cReady
         * @instance
         */
        s2cReady.prototype.errorCode = 0;

        /**
         * s2cReady userID.
         * @member {number} userID
         * @memberof awesomepackage.s2cReady
         * @instance
         */
        s2cReady.prototype.userID = 0;

        /**
         * Creates a new s2cReady instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cReady
         * @static
         * @param {awesomepackage.Is2cReady=} [properties] Properties to set
         * @returns {awesomepackage.s2cReady} s2cReady instance
         */
        s2cReady.create = function create(properties) {
            return new s2cReady(properties);
        };

        /**
         * Encodes the specified s2cReady message. Does not implicitly {@link awesomepackage.s2cReady.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cReady
         * @static
         * @param {awesomepackage.Is2cReady} message s2cReady message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cReady.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.errorCode);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.userID);
            return writer;
        };

        /**
         * Encodes the specified s2cReady message, length delimited. Does not implicitly {@link awesomepackage.s2cReady.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cReady
         * @static
         * @param {awesomepackage.Is2cReady} message s2cReady message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cReady.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cReady message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cReady
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cReady} s2cReady
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cReady.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cReady();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.errorCode = reader.int32();
                    break;
                case 2:
                    message.userID = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("errorCode"))
                throw $util.ProtocolError("missing required 'errorCode'", { instance: message });
            if (!message.hasOwnProperty("userID"))
                throw $util.ProtocolError("missing required 'userID'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cReady message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cReady
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cReady} s2cReady
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cReady.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cReady message.
         * @function verify
         * @memberof awesomepackage.s2cReady
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cReady.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.errorCode))
                return "errorCode: integer expected";
            if (!$util.isInteger(message.userID))
                return "userID: integer expected";
            return null;
        };

        /**
         * Creates a s2cReady message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cReady
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cReady} s2cReady
         */
        s2cReady.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cReady)
                return object;
            var message = new $root.awesomepackage.s2cReady();
            if (object.errorCode != null)
                message.errorCode = object.errorCode | 0;
            if (object.userID != null)
                message.userID = object.userID | 0;
            return message;
        };

        /**
         * Creates a plain object from a s2cReady message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cReady
         * @static
         * @param {awesomepackage.s2cReady} message s2cReady
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cReady.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.errorCode = 0;
                object.userID = 0;
            }
            if (message.errorCode != null && message.hasOwnProperty("errorCode"))
                object.errorCode = message.errorCode;
            if (message.userID != null && message.hasOwnProperty("userID"))
                object.userID = message.userID;
            return object;
        };

        /**
         * Converts this s2cReady to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cReady
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cReady.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cReady;
    })();

    awesomepackage.s2cGameStart = (function() {

        /**
         * Properties of a s2cGameStart.
         * @memberof awesomepackage
         * @interface Is2cGameStart
         * @property {number} errorCode s2cGameStart errorCode
         * @property {string|null} [headimg] s2cGameStart headimg
         * @property {string|null} [name] s2cGameStart name
         * @property {string|null} [sex] s2cGameStart sex
         */

        /**
         * Constructs a new s2cGameStart.
         * @memberof awesomepackage
         * @classdesc Represents a s2cGameStart.
         * @implements Is2cGameStart
         * @constructor
         * @param {awesomepackage.Is2cGameStart=} [properties] Properties to set
         */
        function s2cGameStart(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cGameStart errorCode.
         * @member {number} errorCode
         * @memberof awesomepackage.s2cGameStart
         * @instance
         */
        s2cGameStart.prototype.errorCode = 0;

        /**
         * s2cGameStart headimg.
         * @member {string} headimg
         * @memberof awesomepackage.s2cGameStart
         * @instance
         */
        s2cGameStart.prototype.headimg = "";

        /**
         * s2cGameStart name.
         * @member {string} name
         * @memberof awesomepackage.s2cGameStart
         * @instance
         */
        s2cGameStart.prototype.name = "";

        /**
         * s2cGameStart sex.
         * @member {string} sex
         * @memberof awesomepackage.s2cGameStart
         * @instance
         */
        s2cGameStart.prototype.sex = "";

        /**
         * Creates a new s2cGameStart instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cGameStart
         * @static
         * @param {awesomepackage.Is2cGameStart=} [properties] Properties to set
         * @returns {awesomepackage.s2cGameStart} s2cGameStart instance
         */
        s2cGameStart.create = function create(properties) {
            return new s2cGameStart(properties);
        };

        /**
         * Encodes the specified s2cGameStart message. Does not implicitly {@link awesomepackage.s2cGameStart.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cGameStart
         * @static
         * @param {awesomepackage.Is2cGameStart} message s2cGameStart message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cGameStart.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.errorCode);
            if (message.headimg != null && message.hasOwnProperty("headimg"))
                writer.uint32(/* id 2, wireType 2 =*/18).string(message.headimg);
            if (message.name != null && message.hasOwnProperty("name"))
                writer.uint32(/* id 3, wireType 2 =*/26).string(message.name);
            if (message.sex != null && message.hasOwnProperty("sex"))
                writer.uint32(/* id 4, wireType 2 =*/34).string(message.sex);
            return writer;
        };

        /**
         * Encodes the specified s2cGameStart message, length delimited. Does not implicitly {@link awesomepackage.s2cGameStart.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cGameStart
         * @static
         * @param {awesomepackage.Is2cGameStart} message s2cGameStart message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cGameStart.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cGameStart message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cGameStart
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cGameStart} s2cGameStart
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cGameStart.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cGameStart();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.errorCode = reader.int32();
                    break;
                case 2:
                    message.headimg = reader.string();
                    break;
                case 3:
                    message.name = reader.string();
                    break;
                case 4:
                    message.sex = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("errorCode"))
                throw $util.ProtocolError("missing required 'errorCode'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cGameStart message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cGameStart
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cGameStart} s2cGameStart
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cGameStart.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cGameStart message.
         * @function verify
         * @memberof awesomepackage.s2cGameStart
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cGameStart.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.errorCode))
                return "errorCode: integer expected";
            if (message.headimg != null && message.hasOwnProperty("headimg"))
                if (!$util.isString(message.headimg))
                    return "headimg: string expected";
            if (message.name != null && message.hasOwnProperty("name"))
                if (!$util.isString(message.name))
                    return "name: string expected";
            if (message.sex != null && message.hasOwnProperty("sex"))
                if (!$util.isString(message.sex))
                    return "sex: string expected";
            return null;
        };

        /**
         * Creates a s2cGameStart message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cGameStart
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cGameStart} s2cGameStart
         */
        s2cGameStart.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cGameStart)
                return object;
            var message = new $root.awesomepackage.s2cGameStart();
            if (object.errorCode != null)
                message.errorCode = object.errorCode | 0;
            if (object.headimg != null)
                message.headimg = String(object.headimg);
            if (object.name != null)
                message.name = String(object.name);
            if (object.sex != null)
                message.sex = String(object.sex);
            return message;
        };

        /**
         * Creates a plain object from a s2cGameStart message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cGameStart
         * @static
         * @param {awesomepackage.s2cGameStart} message s2cGameStart
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cGameStart.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.errorCode = 0;
                object.headimg = "";
                object.name = "";
                object.sex = "";
            }
            if (message.errorCode != null && message.hasOwnProperty("errorCode"))
                object.errorCode = message.errorCode;
            if (message.headimg != null && message.hasOwnProperty("headimg"))
                object.headimg = message.headimg;
            if (message.name != null && message.hasOwnProperty("name"))
                object.name = message.name;
            if (message.sex != null && message.hasOwnProperty("sex"))
                object.sex = message.sex;
            return object;
        };

        /**
         * Converts this s2cGameStart to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cGameStart
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cGameStart.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cGameStart;
    })();

    awesomepackage.s2cRoundEnd = (function() {

        /**
         * Properties of a s2cRoundEnd.
         * @memberof awesomepackage
         * @interface Is2cRoundEnd
         * @property {number} errorCode s2cRoundEnd errorCode
         * @property {number} Roundnumber s2cRoundEnd Roundnumber
         */

        /**
         * Constructs a new s2cRoundEnd.
         * @memberof awesomepackage
         * @classdesc Represents a s2cRoundEnd.
         * @implements Is2cRoundEnd
         * @constructor
         * @param {awesomepackage.Is2cRoundEnd=} [properties] Properties to set
         */
        function s2cRoundEnd(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cRoundEnd errorCode.
         * @member {number} errorCode
         * @memberof awesomepackage.s2cRoundEnd
         * @instance
         */
        s2cRoundEnd.prototype.errorCode = 0;

        /**
         * s2cRoundEnd Roundnumber.
         * @member {number} Roundnumber
         * @memberof awesomepackage.s2cRoundEnd
         * @instance
         */
        s2cRoundEnd.prototype.Roundnumber = 0;

        /**
         * Creates a new s2cRoundEnd instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cRoundEnd
         * @static
         * @param {awesomepackage.Is2cRoundEnd=} [properties] Properties to set
         * @returns {awesomepackage.s2cRoundEnd} s2cRoundEnd instance
         */
        s2cRoundEnd.create = function create(properties) {
            return new s2cRoundEnd(properties);
        };

        /**
         * Encodes the specified s2cRoundEnd message. Does not implicitly {@link awesomepackage.s2cRoundEnd.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cRoundEnd
         * @static
         * @param {awesomepackage.Is2cRoundEnd} message s2cRoundEnd message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cRoundEnd.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.errorCode);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.Roundnumber);
            return writer;
        };

        /**
         * Encodes the specified s2cRoundEnd message, length delimited. Does not implicitly {@link awesomepackage.s2cRoundEnd.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cRoundEnd
         * @static
         * @param {awesomepackage.Is2cRoundEnd} message s2cRoundEnd message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cRoundEnd.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cRoundEnd message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cRoundEnd
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cRoundEnd} s2cRoundEnd
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cRoundEnd.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cRoundEnd();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.errorCode = reader.int32();
                    break;
                case 2:
                    message.Roundnumber = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("errorCode"))
                throw $util.ProtocolError("missing required 'errorCode'", { instance: message });
            if (!message.hasOwnProperty("Roundnumber"))
                throw $util.ProtocolError("missing required 'Roundnumber'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cRoundEnd message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cRoundEnd
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cRoundEnd} s2cRoundEnd
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cRoundEnd.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cRoundEnd message.
         * @function verify
         * @memberof awesomepackage.s2cRoundEnd
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cRoundEnd.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.errorCode))
                return "errorCode: integer expected";
            if (!$util.isInteger(message.Roundnumber))
                return "Roundnumber: integer expected";
            return null;
        };

        /**
         * Creates a s2cRoundEnd message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cRoundEnd
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cRoundEnd} s2cRoundEnd
         */
        s2cRoundEnd.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cRoundEnd)
                return object;
            var message = new $root.awesomepackage.s2cRoundEnd();
            if (object.errorCode != null)
                message.errorCode = object.errorCode | 0;
            if (object.Roundnumber != null)
                message.Roundnumber = object.Roundnumber | 0;
            return message;
        };

        /**
         * Creates a plain object from a s2cRoundEnd message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cRoundEnd
         * @static
         * @param {awesomepackage.s2cRoundEnd} message s2cRoundEnd
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cRoundEnd.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.errorCode = 0;
                object.Roundnumber = 0;
            }
            if (message.errorCode != null && message.hasOwnProperty("errorCode"))
                object.errorCode = message.errorCode;
            if (message.Roundnumber != null && message.hasOwnProperty("Roundnumber"))
                object.Roundnumber = message.Roundnumber;
            return object;
        };

        /**
         * Converts this s2cRoundEnd to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cRoundEnd
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cRoundEnd.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cRoundEnd;
    })();

    awesomepackage.c2sSendEnemy = (function() {

        /**
         * Properties of a c2sSendEnemy.
         * @memberof awesomepackage
         * @interface Ic2sSendEnemy
         * @property {Array.<number>|null} [enmeys] c2sSendEnemy enmeys
         * @property {number} userId c2sSendEnemy userId
         * @property {number} Roundnumber c2sSendEnemy Roundnumber
         * @property {number} gold c2sSendEnemy gold
         */

        /**
         * Constructs a new c2sSendEnemy.
         * @memberof awesomepackage
         * @classdesc Represents a c2sSendEnemy.
         * @implements Ic2sSendEnemy
         * @constructor
         * @param {awesomepackage.Ic2sSendEnemy=} [properties] Properties to set
         */
        function c2sSendEnemy(properties) {
            this.enmeys = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sSendEnemy enmeys.
         * @member {Array.<number>} enmeys
         * @memberof awesomepackage.c2sSendEnemy
         * @instance
         */
        c2sSendEnemy.prototype.enmeys = $util.emptyArray;

        /**
         * c2sSendEnemy userId.
         * @member {number} userId
         * @memberof awesomepackage.c2sSendEnemy
         * @instance
         */
        c2sSendEnemy.prototype.userId = 0;

        /**
         * c2sSendEnemy Roundnumber.
         * @member {number} Roundnumber
         * @memberof awesomepackage.c2sSendEnemy
         * @instance
         */
        c2sSendEnemy.prototype.Roundnumber = 0;

        /**
         * c2sSendEnemy gold.
         * @member {number} gold
         * @memberof awesomepackage.c2sSendEnemy
         * @instance
         */
        c2sSendEnemy.prototype.gold = 0;

        /**
         * Creates a new c2sSendEnemy instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sSendEnemy
         * @static
         * @param {awesomepackage.Ic2sSendEnemy=} [properties] Properties to set
         * @returns {awesomepackage.c2sSendEnemy} c2sSendEnemy instance
         */
        c2sSendEnemy.create = function create(properties) {
            return new c2sSendEnemy(properties);
        };

        /**
         * Encodes the specified c2sSendEnemy message. Does not implicitly {@link awesomepackage.c2sSendEnemy.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sSendEnemy
         * @static
         * @param {awesomepackage.Ic2sSendEnemy} message c2sSendEnemy message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sSendEnemy.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.enmeys != null && message.enmeys.length) {
                writer.uint32(/* id 1, wireType 2 =*/10).fork();
                for (var i = 0; i < message.enmeys.length; ++i)
                    writer.int32(message.enmeys[i]);
                writer.ldelim();
            }
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.userId);
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.Roundnumber);
            writer.uint32(/* id 4, wireType 0 =*/32).int32(message.gold);
            return writer;
        };

        /**
         * Encodes the specified c2sSendEnemy message, length delimited. Does not implicitly {@link awesomepackage.c2sSendEnemy.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sSendEnemy
         * @static
         * @param {awesomepackage.Ic2sSendEnemy} message c2sSendEnemy message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sSendEnemy.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sSendEnemy message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sSendEnemy
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sSendEnemy} c2sSendEnemy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sSendEnemy.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sSendEnemy();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    if (!(message.enmeys && message.enmeys.length))
                        message.enmeys = [];
                    if ((tag & 7) === 2) {
                        var end2 = reader.uint32() + reader.pos;
                        while (reader.pos < end2)
                            message.enmeys.push(reader.int32());
                    } else
                        message.enmeys.push(reader.int32());
                    break;
                case 2:
                    message.userId = reader.int32();
                    break;
                case 3:
                    message.Roundnumber = reader.int32();
                    break;
                case 4:
                    message.gold = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            if (!message.hasOwnProperty("Roundnumber"))
                throw $util.ProtocolError("missing required 'Roundnumber'", { instance: message });
            if (!message.hasOwnProperty("gold"))
                throw $util.ProtocolError("missing required 'gold'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sSendEnemy message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sSendEnemy
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sSendEnemy} c2sSendEnemy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sSendEnemy.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sSendEnemy message.
         * @function verify
         * @memberof awesomepackage.c2sSendEnemy
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sSendEnemy.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.enmeys != null && message.hasOwnProperty("enmeys")) {
                if (!Array.isArray(message.enmeys))
                    return "enmeys: array expected";
                for (var i = 0; i < message.enmeys.length; ++i)
                    if (!$util.isInteger(message.enmeys[i]))
                        return "enmeys: integer[] expected";
            }
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            if (!$util.isInteger(message.Roundnumber))
                return "Roundnumber: integer expected";
            if (!$util.isInteger(message.gold))
                return "gold: integer expected";
            return null;
        };

        /**
         * Creates a c2sSendEnemy message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sSendEnemy
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sSendEnemy} c2sSendEnemy
         */
        c2sSendEnemy.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sSendEnemy)
                return object;
            var message = new $root.awesomepackage.c2sSendEnemy();
            if (object.enmeys) {
                if (!Array.isArray(object.enmeys))
                    throw TypeError(".awesomepackage.c2sSendEnemy.enmeys: array expected");
                message.enmeys = [];
                for (var i = 0; i < object.enmeys.length; ++i)
                    message.enmeys[i] = object.enmeys[i] | 0;
            }
            if (object.userId != null)
                message.userId = object.userId | 0;
            if (object.Roundnumber != null)
                message.Roundnumber = object.Roundnumber | 0;
            if (object.gold != null)
                message.gold = object.gold | 0;
            return message;
        };

        /**
         * Creates a plain object from a c2sSendEnemy message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sSendEnemy
         * @static
         * @param {awesomepackage.c2sSendEnemy} message c2sSendEnemy
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sSendEnemy.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.arrays || options.defaults)
                object.enmeys = [];
            if (options.defaults) {
                object.userId = 0;
                object.Roundnumber = 0;
                object.gold = 0;
            }
            if (message.enmeys && message.enmeys.length) {
                object.enmeys = [];
                for (var j = 0; j < message.enmeys.length; ++j)
                    object.enmeys[j] = message.enmeys[j];
            }
            if (message.userId != null && message.hasOwnProperty("userId"))
                object.userId = message.userId;
            if (message.Roundnumber != null && message.hasOwnProperty("Roundnumber"))
                object.Roundnumber = message.Roundnumber;
            if (message.gold != null && message.hasOwnProperty("gold"))
                object.gold = message.gold;
            return object;
        };

        /**
         * Converts this c2sSendEnemy to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sSendEnemy
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sSendEnemy.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sSendEnemy;
    })();

    awesomepackage.s2cSendEnemy = (function() {

        /**
         * Properties of a s2cSendEnemy.
         * @memberof awesomepackage
         * @interface Is2cSendEnemy
         * @property {Array.<number>|null} [enmeys] s2cSendEnemy enmeys
         * @property {Array.<awesomepackage.Ilocation>|null} [enmeysPosition] s2cSendEnemy enmeysPosition
         */

        /**
         * Constructs a new s2cSendEnemy.
         * @memberof awesomepackage
         * @classdesc Represents a s2cSendEnemy.
         * @implements Is2cSendEnemy
         * @constructor
         * @param {awesomepackage.Is2cSendEnemy=} [properties] Properties to set
         */
        function s2cSendEnemy(properties) {
            this.enmeys = [];
            this.enmeysPosition = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cSendEnemy enmeys.
         * @member {Array.<number>} enmeys
         * @memberof awesomepackage.s2cSendEnemy
         * @instance
         */
        s2cSendEnemy.prototype.enmeys = $util.emptyArray;

        /**
         * s2cSendEnemy enmeysPosition.
         * @member {Array.<awesomepackage.Ilocation>} enmeysPosition
         * @memberof awesomepackage.s2cSendEnemy
         * @instance
         */
        s2cSendEnemy.prototype.enmeysPosition = $util.emptyArray;

        /**
         * Creates a new s2cSendEnemy instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cSendEnemy
         * @static
         * @param {awesomepackage.Is2cSendEnemy=} [properties] Properties to set
         * @returns {awesomepackage.s2cSendEnemy} s2cSendEnemy instance
         */
        s2cSendEnemy.create = function create(properties) {
            return new s2cSendEnemy(properties);
        };

        /**
         * Encodes the specified s2cSendEnemy message. Does not implicitly {@link awesomepackage.s2cSendEnemy.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cSendEnemy
         * @static
         * @param {awesomepackage.Is2cSendEnemy} message s2cSendEnemy message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cSendEnemy.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.enmeys != null && message.enmeys.length) {
                writer.uint32(/* id 1, wireType 2 =*/10).fork();
                for (var i = 0; i < message.enmeys.length; ++i)
                    writer.int32(message.enmeys[i]);
                writer.ldelim();
            }
            if (message.enmeysPosition != null && message.enmeysPosition.length)
                for (var i = 0; i < message.enmeysPosition.length; ++i)
                    $root.awesomepackage.location.encode(message.enmeysPosition[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
            return writer;
        };

        /**
         * Encodes the specified s2cSendEnemy message, length delimited. Does not implicitly {@link awesomepackage.s2cSendEnemy.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cSendEnemy
         * @static
         * @param {awesomepackage.Is2cSendEnemy} message s2cSendEnemy message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cSendEnemy.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cSendEnemy message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cSendEnemy
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cSendEnemy} s2cSendEnemy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cSendEnemy.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cSendEnemy();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    if (!(message.enmeys && message.enmeys.length))
                        message.enmeys = [];
                    if ((tag & 7) === 2) {
                        var end2 = reader.uint32() + reader.pos;
                        while (reader.pos < end2)
                            message.enmeys.push(reader.int32());
                    } else
                        message.enmeys.push(reader.int32());
                    break;
                case 2:
                    if (!(message.enmeysPosition && message.enmeysPosition.length))
                        message.enmeysPosition = [];
                    message.enmeysPosition.push($root.awesomepackage.location.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a s2cSendEnemy message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cSendEnemy
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cSendEnemy} s2cSendEnemy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cSendEnemy.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cSendEnemy message.
         * @function verify
         * @memberof awesomepackage.s2cSendEnemy
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cSendEnemy.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.enmeys != null && message.hasOwnProperty("enmeys")) {
                if (!Array.isArray(message.enmeys))
                    return "enmeys: array expected";
                for (var i = 0; i < message.enmeys.length; ++i)
                    if (!$util.isInteger(message.enmeys[i]))
                        return "enmeys: integer[] expected";
            }
            if (message.enmeysPosition != null && message.hasOwnProperty("enmeysPosition")) {
                if (!Array.isArray(message.enmeysPosition))
                    return "enmeysPosition: array expected";
                for (var i = 0; i < message.enmeysPosition.length; ++i) {
                    var error = $root.awesomepackage.location.verify(message.enmeysPosition[i]);
                    if (error)
                        return "enmeysPosition." + error;
                }
            }
            return null;
        };

        /**
         * Creates a s2cSendEnemy message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cSendEnemy
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cSendEnemy} s2cSendEnemy
         */
        s2cSendEnemy.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cSendEnemy)
                return object;
            var message = new $root.awesomepackage.s2cSendEnemy();
            if (object.enmeys) {
                if (!Array.isArray(object.enmeys))
                    throw TypeError(".awesomepackage.s2cSendEnemy.enmeys: array expected");
                message.enmeys = [];
                for (var i = 0; i < object.enmeys.length; ++i)
                    message.enmeys[i] = object.enmeys[i] | 0;
            }
            if (object.enmeysPosition) {
                if (!Array.isArray(object.enmeysPosition))
                    throw TypeError(".awesomepackage.s2cSendEnemy.enmeysPosition: array expected");
                message.enmeysPosition = [];
                for (var i = 0; i < object.enmeysPosition.length; ++i) {
                    if (typeof object.enmeysPosition[i] !== "object")
                        throw TypeError(".awesomepackage.s2cSendEnemy.enmeysPosition: object expected");
                    message.enmeysPosition[i] = $root.awesomepackage.location.fromObject(object.enmeysPosition[i]);
                }
            }
            return message;
        };

        /**
         * Creates a plain object from a s2cSendEnemy message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cSendEnemy
         * @static
         * @param {awesomepackage.s2cSendEnemy} message s2cSendEnemy
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cSendEnemy.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.arrays || options.defaults) {
                object.enmeys = [];
                object.enmeysPosition = [];
            }
            if (message.enmeys && message.enmeys.length) {
                object.enmeys = [];
                for (var j = 0; j < message.enmeys.length; ++j)
                    object.enmeys[j] = message.enmeys[j];
            }
            if (message.enmeysPosition && message.enmeysPosition.length) {
                object.enmeysPosition = [];
                for (var j = 0; j < message.enmeysPosition.length; ++j)
                    object.enmeysPosition[j] = $root.awesomepackage.location.toObject(message.enmeysPosition[j], options);
            }
            return object;
        };

        /**
         * Converts this s2cSendEnemy to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cSendEnemy
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cSendEnemy.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cSendEnemy;
    })();

    awesomepackage.c2sGameover = (function() {

        /**
         * Properties of a c2sGameover.
         * @memberof awesomepackage
         * @interface Ic2sGameover
         * @property {number} userId c2sGameover userId
         */

        /**
         * Constructs a new c2sGameover.
         * @memberof awesomepackage
         * @classdesc Represents a c2sGameover.
         * @implements Ic2sGameover
         * @constructor
         * @param {awesomepackage.Ic2sGameover=} [properties] Properties to set
         */
        function c2sGameover(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sGameover userId.
         * @member {number} userId
         * @memberof awesomepackage.c2sGameover
         * @instance
         */
        c2sGameover.prototype.userId = 0;

        /**
         * Creates a new c2sGameover instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sGameover
         * @static
         * @param {awesomepackage.Ic2sGameover=} [properties] Properties to set
         * @returns {awesomepackage.c2sGameover} c2sGameover instance
         */
        c2sGameover.create = function create(properties) {
            return new c2sGameover(properties);
        };

        /**
         * Encodes the specified c2sGameover message. Does not implicitly {@link awesomepackage.c2sGameover.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sGameover
         * @static
         * @param {awesomepackage.Ic2sGameover} message c2sGameover message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sGameover.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userId);
            return writer;
        };

        /**
         * Encodes the specified c2sGameover message, length delimited. Does not implicitly {@link awesomepackage.c2sGameover.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sGameover
         * @static
         * @param {awesomepackage.Ic2sGameover} message c2sGameover message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sGameover.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sGameover message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sGameover
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sGameover} c2sGameover
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sGameover.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sGameover();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.userId = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sGameover message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sGameover
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sGameover} c2sGameover
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sGameover.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sGameover message.
         * @function verify
         * @memberof awesomepackage.c2sGameover
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sGameover.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            return null;
        };

        /**
         * Creates a c2sGameover message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sGameover
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sGameover} c2sGameover
         */
        c2sGameover.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sGameover)
                return object;
            var message = new $root.awesomepackage.c2sGameover();
            if (object.userId != null)
                message.userId = object.userId | 0;
            return message;
        };

        /**
         * Creates a plain object from a c2sGameover message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sGameover
         * @static
         * @param {awesomepackage.c2sGameover} message c2sGameover
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sGameover.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults)
                object.userId = 0;
            if (message.userId != null && message.hasOwnProperty("userId"))
                object.userId = message.userId;
            return object;
        };

        /**
         * Converts this c2sGameover to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sGameover
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sGameover.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sGameover;
    })();

    awesomepackage.s2cGameover = (function() {

        /**
         * Properties of a s2cGameover.
         * @memberof awesomepackage
         * @interface Is2cGameover
         * @property {number} whoWin s2cGameover whoWin
         * @property {number} noLink s2cGameover noLink
         */

        /**
         * Constructs a new s2cGameover.
         * @memberof awesomepackage
         * @classdesc Represents a s2cGameover.
         * @implements Is2cGameover
         * @constructor
         * @param {awesomepackage.Is2cGameover=} [properties] Properties to set
         */
        function s2cGameover(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cGameover whoWin.
         * @member {number} whoWin
         * @memberof awesomepackage.s2cGameover
         * @instance
         */
        s2cGameover.prototype.whoWin = 0;

        /**
         * s2cGameover noLink.
         * @member {number} noLink
         * @memberof awesomepackage.s2cGameover
         * @instance
         */
        s2cGameover.prototype.noLink = 0;

        /**
         * Creates a new s2cGameover instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cGameover
         * @static
         * @param {awesomepackage.Is2cGameover=} [properties] Properties to set
         * @returns {awesomepackage.s2cGameover} s2cGameover instance
         */
        s2cGameover.create = function create(properties) {
            return new s2cGameover(properties);
        };

        /**
         * Encodes the specified s2cGameover message. Does not implicitly {@link awesomepackage.s2cGameover.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cGameover
         * @static
         * @param {awesomepackage.Is2cGameover} message s2cGameover message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cGameover.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.whoWin);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.noLink);
            return writer;
        };

        /**
         * Encodes the specified s2cGameover message, length delimited. Does not implicitly {@link awesomepackage.s2cGameover.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cGameover
         * @static
         * @param {awesomepackage.Is2cGameover} message s2cGameover message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cGameover.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cGameover message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cGameover
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cGameover} s2cGameover
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cGameover.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cGameover();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.whoWin = reader.int32();
                    break;
                case 2:
                    message.noLink = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("whoWin"))
                throw $util.ProtocolError("missing required 'whoWin'", { instance: message });
            if (!message.hasOwnProperty("noLink"))
                throw $util.ProtocolError("missing required 'noLink'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cGameover message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cGameover
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cGameover} s2cGameover
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cGameover.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cGameover message.
         * @function verify
         * @memberof awesomepackage.s2cGameover
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cGameover.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.whoWin))
                return "whoWin: integer expected";
            if (!$util.isInteger(message.noLink))
                return "noLink: integer expected";
            return null;
        };

        /**
         * Creates a s2cGameover message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cGameover
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cGameover} s2cGameover
         */
        s2cGameover.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cGameover)
                return object;
            var message = new $root.awesomepackage.s2cGameover();
            if (object.whoWin != null)
                message.whoWin = object.whoWin | 0;
            if (object.noLink != null)
                message.noLink = object.noLink | 0;
            return message;
        };

        /**
         * Creates a plain object from a s2cGameover message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cGameover
         * @static
         * @param {awesomepackage.s2cGameover} message s2cGameover
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cGameover.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.whoWin = 0;
                object.noLink = 0;
            }
            if (message.whoWin != null && message.hasOwnProperty("whoWin"))
                object.whoWin = message.whoWin;
            if (message.noLink != null && message.hasOwnProperty("noLink"))
                object.noLink = message.noLink;
            return object;
        };

        /**
         * Converts this s2cGameover to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cGameover
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cGameover.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cGameover;
    })();

    awesomepackage.c2sleakEnemy = (function() {

        /**
         * Properties of a c2sleakEnemy.
         * @memberof awesomepackage
         * @interface Ic2sleakEnemy
         * @property {number} userId c2sleakEnemy userId
         * @property {Array.<number>|null} [enmeys] c2sleakEnemy enmeys
         * @property {number} gold c2sleakEnemy gold
         */

        /**
         * Constructs a new c2sleakEnemy.
         * @memberof awesomepackage
         * @classdesc Represents a c2sleakEnemy.
         * @implements Ic2sleakEnemy
         * @constructor
         * @param {awesomepackage.Ic2sleakEnemy=} [properties] Properties to set
         */
        function c2sleakEnemy(properties) {
            this.enmeys = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sleakEnemy userId.
         * @member {number} userId
         * @memberof awesomepackage.c2sleakEnemy
         * @instance
         */
        c2sleakEnemy.prototype.userId = 0;

        /**
         * c2sleakEnemy enmeys.
         * @member {Array.<number>} enmeys
         * @memberof awesomepackage.c2sleakEnemy
         * @instance
         */
        c2sleakEnemy.prototype.enmeys = $util.emptyArray;

        /**
         * c2sleakEnemy gold.
         * @member {number} gold
         * @memberof awesomepackage.c2sleakEnemy
         * @instance
         */
        c2sleakEnemy.prototype.gold = 0;

        /**
         * Creates a new c2sleakEnemy instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sleakEnemy
         * @static
         * @param {awesomepackage.Ic2sleakEnemy=} [properties] Properties to set
         * @returns {awesomepackage.c2sleakEnemy} c2sleakEnemy instance
         */
        c2sleakEnemy.create = function create(properties) {
            return new c2sleakEnemy(properties);
        };

        /**
         * Encodes the specified c2sleakEnemy message. Does not implicitly {@link awesomepackage.c2sleakEnemy.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sleakEnemy
         * @static
         * @param {awesomepackage.Ic2sleakEnemy} message c2sleakEnemy message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sleakEnemy.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userId);
            if (message.enmeys != null && message.enmeys.length) {
                writer.uint32(/* id 2, wireType 2 =*/18).fork();
                for (var i = 0; i < message.enmeys.length; ++i)
                    writer.int32(message.enmeys[i]);
                writer.ldelim();
            }
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.gold);
            return writer;
        };

        /**
         * Encodes the specified c2sleakEnemy message, length delimited. Does not implicitly {@link awesomepackage.c2sleakEnemy.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sleakEnemy
         * @static
         * @param {awesomepackage.Ic2sleakEnemy} message c2sleakEnemy message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sleakEnemy.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sleakEnemy message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sleakEnemy
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sleakEnemy} c2sleakEnemy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sleakEnemy.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sleakEnemy();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.userId = reader.int32();
                    break;
                case 2:
                    if (!(message.enmeys && message.enmeys.length))
                        message.enmeys = [];
                    if ((tag & 7) === 2) {
                        var end2 = reader.uint32() + reader.pos;
                        while (reader.pos < end2)
                            message.enmeys.push(reader.int32());
                    } else
                        message.enmeys.push(reader.int32());
                    break;
                case 3:
                    message.gold = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            if (!message.hasOwnProperty("gold"))
                throw $util.ProtocolError("missing required 'gold'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sleakEnemy message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sleakEnemy
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sleakEnemy} c2sleakEnemy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sleakEnemy.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sleakEnemy message.
         * @function verify
         * @memberof awesomepackage.c2sleakEnemy
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sleakEnemy.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            if (message.enmeys != null && message.hasOwnProperty("enmeys")) {
                if (!Array.isArray(message.enmeys))
                    return "enmeys: array expected";
                for (var i = 0; i < message.enmeys.length; ++i)
                    if (!$util.isInteger(message.enmeys[i]))
                        return "enmeys: integer[] expected";
            }
            if (!$util.isInteger(message.gold))
                return "gold: integer expected";
            return null;
        };

        /**
         * Creates a c2sleakEnemy message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sleakEnemy
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sleakEnemy} c2sleakEnemy
         */
        c2sleakEnemy.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sleakEnemy)
                return object;
            var message = new $root.awesomepackage.c2sleakEnemy();
            if (object.userId != null)
                message.userId = object.userId | 0;
            if (object.enmeys) {
                if (!Array.isArray(object.enmeys))
                    throw TypeError(".awesomepackage.c2sleakEnemy.enmeys: array expected");
                message.enmeys = [];
                for (var i = 0; i < object.enmeys.length; ++i)
                    message.enmeys[i] = object.enmeys[i] | 0;
            }
            if (object.gold != null)
                message.gold = object.gold | 0;
            return message;
        };

        /**
         * Creates a plain object from a c2sleakEnemy message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sleakEnemy
         * @static
         * @param {awesomepackage.c2sleakEnemy} message c2sleakEnemy
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sleakEnemy.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.arrays || options.defaults)
                object.enmeys = [];
            if (options.defaults) {
                object.userId = 0;
                object.gold = 0;
            }
            if (message.userId != null && message.hasOwnProperty("userId"))
                object.userId = message.userId;
            if (message.enmeys && message.enmeys.length) {
                object.enmeys = [];
                for (var j = 0; j < message.enmeys.length; ++j)
                    object.enmeys[j] = message.enmeys[j];
            }
            if (message.gold != null && message.hasOwnProperty("gold"))
                object.gold = message.gold;
            return object;
        };

        /**
         * Converts this c2sleakEnemy to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sleakEnemy
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sleakEnemy.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sleakEnemy;
    })();

    awesomepackage.s2cleakEnemy = (function() {

        /**
         * Properties of a s2cleakEnemy.
         * @memberof awesomepackage
         * @interface Is2cleakEnemy
         * @property {number} userId s2cleakEnemy userId
         * @property {Array.<number>|null} [enmeys] s2cleakEnemy enmeys
         * @property {Array.<awesomepackage.Ilocation>|null} [enmeysPosition] s2cleakEnemy enmeysPosition
         */

        /**
         * Constructs a new s2cleakEnemy.
         * @memberof awesomepackage
         * @classdesc Represents a s2cleakEnemy.
         * @implements Is2cleakEnemy
         * @constructor
         * @param {awesomepackage.Is2cleakEnemy=} [properties] Properties to set
         */
        function s2cleakEnemy(properties) {
            this.enmeys = [];
            this.enmeysPosition = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cleakEnemy userId.
         * @member {number} userId
         * @memberof awesomepackage.s2cleakEnemy
         * @instance
         */
        s2cleakEnemy.prototype.userId = 0;

        /**
         * s2cleakEnemy enmeys.
         * @member {Array.<number>} enmeys
         * @memberof awesomepackage.s2cleakEnemy
         * @instance
         */
        s2cleakEnemy.prototype.enmeys = $util.emptyArray;

        /**
         * s2cleakEnemy enmeysPosition.
         * @member {Array.<awesomepackage.Ilocation>} enmeysPosition
         * @memberof awesomepackage.s2cleakEnemy
         * @instance
         */
        s2cleakEnemy.prototype.enmeysPosition = $util.emptyArray;

        /**
         * Creates a new s2cleakEnemy instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cleakEnemy
         * @static
         * @param {awesomepackage.Is2cleakEnemy=} [properties] Properties to set
         * @returns {awesomepackage.s2cleakEnemy} s2cleakEnemy instance
         */
        s2cleakEnemy.create = function create(properties) {
            return new s2cleakEnemy(properties);
        };

        /**
         * Encodes the specified s2cleakEnemy message. Does not implicitly {@link awesomepackage.s2cleakEnemy.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cleakEnemy
         * @static
         * @param {awesomepackage.Is2cleakEnemy} message s2cleakEnemy message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cleakEnemy.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userId);
            if (message.enmeys != null && message.enmeys.length) {
                writer.uint32(/* id 2, wireType 2 =*/18).fork();
                for (var i = 0; i < message.enmeys.length; ++i)
                    writer.int32(message.enmeys[i]);
                writer.ldelim();
            }
            if (message.enmeysPosition != null && message.enmeysPosition.length)
                for (var i = 0; i < message.enmeysPosition.length; ++i)
                    $root.awesomepackage.location.encode(message.enmeysPosition[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
            return writer;
        };

        /**
         * Encodes the specified s2cleakEnemy message, length delimited. Does not implicitly {@link awesomepackage.s2cleakEnemy.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cleakEnemy
         * @static
         * @param {awesomepackage.Is2cleakEnemy} message s2cleakEnemy message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cleakEnemy.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cleakEnemy message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cleakEnemy
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cleakEnemy} s2cleakEnemy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cleakEnemy.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cleakEnemy();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.userId = reader.int32();
                    break;
                case 2:
                    if (!(message.enmeys && message.enmeys.length))
                        message.enmeys = [];
                    if ((tag & 7) === 2) {
                        var end2 = reader.uint32() + reader.pos;
                        while (reader.pos < end2)
                            message.enmeys.push(reader.int32());
                    } else
                        message.enmeys.push(reader.int32());
                    break;
                case 3:
                    if (!(message.enmeysPosition && message.enmeysPosition.length))
                        message.enmeysPosition = [];
                    message.enmeysPosition.push($root.awesomepackage.location.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cleakEnemy message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cleakEnemy
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cleakEnemy} s2cleakEnemy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cleakEnemy.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cleakEnemy message.
         * @function verify
         * @memberof awesomepackage.s2cleakEnemy
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cleakEnemy.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            if (message.enmeys != null && message.hasOwnProperty("enmeys")) {
                if (!Array.isArray(message.enmeys))
                    return "enmeys: array expected";
                for (var i = 0; i < message.enmeys.length; ++i)
                    if (!$util.isInteger(message.enmeys[i]))
                        return "enmeys: integer[] expected";
            }
            if (message.enmeysPosition != null && message.hasOwnProperty("enmeysPosition")) {
                if (!Array.isArray(message.enmeysPosition))
                    return "enmeysPosition: array expected";
                for (var i = 0; i < message.enmeysPosition.length; ++i) {
                    var error = $root.awesomepackage.location.verify(message.enmeysPosition[i]);
                    if (error)
                        return "enmeysPosition." + error;
                }
            }
            return null;
        };

        /**
         * Creates a s2cleakEnemy message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cleakEnemy
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cleakEnemy} s2cleakEnemy
         */
        s2cleakEnemy.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cleakEnemy)
                return object;
            var message = new $root.awesomepackage.s2cleakEnemy();
            if (object.userId != null)
                message.userId = object.userId | 0;
            if (object.enmeys) {
                if (!Array.isArray(object.enmeys))
                    throw TypeError(".awesomepackage.s2cleakEnemy.enmeys: array expected");
                message.enmeys = [];
                for (var i = 0; i < object.enmeys.length; ++i)
                    message.enmeys[i] = object.enmeys[i] | 0;
            }
            if (object.enmeysPosition) {
                if (!Array.isArray(object.enmeysPosition))
                    throw TypeError(".awesomepackage.s2cleakEnemy.enmeysPosition: array expected");
                message.enmeysPosition = [];
                for (var i = 0; i < object.enmeysPosition.length; ++i) {
                    if (typeof object.enmeysPosition[i] !== "object")
                        throw TypeError(".awesomepackage.s2cleakEnemy.enmeysPosition: object expected");
                    message.enmeysPosition[i] = $root.awesomepackage.location.fromObject(object.enmeysPosition[i]);
                }
            }
            return message;
        };

        /**
         * Creates a plain object from a s2cleakEnemy message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cleakEnemy
         * @static
         * @param {awesomepackage.s2cleakEnemy} message s2cleakEnemy
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cleakEnemy.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.arrays || options.defaults) {
                object.enmeys = [];
                object.enmeysPosition = [];
            }
            if (options.defaults)
                object.userId = 0;
            if (message.userId != null && message.hasOwnProperty("userId"))
                object.userId = message.userId;
            if (message.enmeys && message.enmeys.length) {
                object.enmeys = [];
                for (var j = 0; j < message.enmeys.length; ++j)
                    object.enmeys[j] = message.enmeys[j];
            }
            if (message.enmeysPosition && message.enmeysPosition.length) {
                object.enmeysPosition = [];
                for (var j = 0; j < message.enmeysPosition.length; ++j)
                    object.enmeysPosition[j] = $root.awesomepackage.location.toObject(message.enmeysPosition[j], options);
            }
            return object;
        };

        /**
         * Converts this s2cleakEnemy to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cleakEnemy
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cleakEnemy.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cleakEnemy;
    })();

    awesomepackage.c2sskill = (function() {

        /**
         * Properties of a c2sskill.
         * @memberof awesomepackage
         * @interface Ic2sskill
         * @property {number} userId c2sskill userId
         * @property {number} type c2sskill type
         * @property {number} skill c2sskill skill
         */

        /**
         * Constructs a new c2sskill.
         * @memberof awesomepackage
         * @classdesc Represents a c2sskill.
         * @implements Ic2sskill
         * @constructor
         * @param {awesomepackage.Ic2sskill=} [properties] Properties to set
         */
        function c2sskill(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sskill userId.
         * @member {number} userId
         * @memberof awesomepackage.c2sskill
         * @instance
         */
        c2sskill.prototype.userId = 0;

        /**
         * c2sskill type.
         * @member {number} type
         * @memberof awesomepackage.c2sskill
         * @instance
         */
        c2sskill.prototype.type = 0;

        /**
         * c2sskill skill.
         * @member {number} skill
         * @memberof awesomepackage.c2sskill
         * @instance
         */
        c2sskill.prototype.skill = 0;

        /**
         * Creates a new c2sskill instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sskill
         * @static
         * @param {awesomepackage.Ic2sskill=} [properties] Properties to set
         * @returns {awesomepackage.c2sskill} c2sskill instance
         */
        c2sskill.create = function create(properties) {
            return new c2sskill(properties);
        };

        /**
         * Encodes the specified c2sskill message. Does not implicitly {@link awesomepackage.c2sskill.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sskill
         * @static
         * @param {awesomepackage.Ic2sskill} message c2sskill message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sskill.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userId);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.type);
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.skill);
            return writer;
        };

        /**
         * Encodes the specified c2sskill message, length delimited. Does not implicitly {@link awesomepackage.c2sskill.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sskill
         * @static
         * @param {awesomepackage.Ic2sskill} message c2sskill message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sskill.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sskill message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sskill
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sskill} c2sskill
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sskill.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sskill();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.userId = reader.int32();
                    break;
                case 2:
                    message.type = reader.int32();
                    break;
                case 3:
                    message.skill = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            if (!message.hasOwnProperty("type"))
                throw $util.ProtocolError("missing required 'type'", { instance: message });
            if (!message.hasOwnProperty("skill"))
                throw $util.ProtocolError("missing required 'skill'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sskill message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sskill
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sskill} c2sskill
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sskill.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sskill message.
         * @function verify
         * @memberof awesomepackage.c2sskill
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sskill.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            if (!$util.isInteger(message.type))
                return "type: integer expected";
            if (!$util.isInteger(message.skill))
                return "skill: integer expected";
            return null;
        };

        /**
         * Creates a c2sskill message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sskill
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sskill} c2sskill
         */
        c2sskill.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sskill)
                return object;
            var message = new $root.awesomepackage.c2sskill();
            if (object.userId != null)
                message.userId = object.userId | 0;
            if (object.type != null)
                message.type = object.type | 0;
            if (object.skill != null)
                message.skill = object.skill | 0;
            return message;
        };

        /**
         * Creates a plain object from a c2sskill message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sskill
         * @static
         * @param {awesomepackage.c2sskill} message c2sskill
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sskill.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.userId = 0;
                object.type = 0;
                object.skill = 0;
            }
            if (message.userId != null && message.hasOwnProperty("userId"))
                object.userId = message.userId;
            if (message.type != null && message.hasOwnProperty("type"))
                object.type = message.type;
            if (message.skill != null && message.hasOwnProperty("skill"))
                object.skill = message.skill;
            return object;
        };

        /**
         * Converts this c2sskill to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sskill
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sskill.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sskill;
    })();

    awesomepackage.s2cskill = (function() {

        /**
         * Properties of a s2cskill.
         * @memberof awesomepackage
         * @interface Is2cskill
         * @property {number} type s2cskill type
         * @property {number} skill s2cskill skill
         */

        /**
         * Constructs a new s2cskill.
         * @memberof awesomepackage
         * @classdesc Represents a s2cskill.
         * @implements Is2cskill
         * @constructor
         * @param {awesomepackage.Is2cskill=} [properties] Properties to set
         */
        function s2cskill(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cskill type.
         * @member {number} type
         * @memberof awesomepackage.s2cskill
         * @instance
         */
        s2cskill.prototype.type = 0;

        /**
         * s2cskill skill.
         * @member {number} skill
         * @memberof awesomepackage.s2cskill
         * @instance
         */
        s2cskill.prototype.skill = 0;

        /**
         * Creates a new s2cskill instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cskill
         * @static
         * @param {awesomepackage.Is2cskill=} [properties] Properties to set
         * @returns {awesomepackage.s2cskill} s2cskill instance
         */
        s2cskill.create = function create(properties) {
            return new s2cskill(properties);
        };

        /**
         * Encodes the specified s2cskill message. Does not implicitly {@link awesomepackage.s2cskill.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cskill
         * @static
         * @param {awesomepackage.Is2cskill} message s2cskill message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cskill.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.skill);
            return writer;
        };

        /**
         * Encodes the specified s2cskill message, length delimited. Does not implicitly {@link awesomepackage.s2cskill.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cskill
         * @static
         * @param {awesomepackage.Is2cskill} message s2cskill message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cskill.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cskill message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cskill
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cskill} s2cskill
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cskill.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cskill();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.type = reader.int32();
                    break;
                case 2:
                    message.skill = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("type"))
                throw $util.ProtocolError("missing required 'type'", { instance: message });
            if (!message.hasOwnProperty("skill"))
                throw $util.ProtocolError("missing required 'skill'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cskill message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cskill
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cskill} s2cskill
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cskill.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cskill message.
         * @function verify
         * @memberof awesomepackage.s2cskill
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cskill.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.type))
                return "type: integer expected";
            if (!$util.isInteger(message.skill))
                return "skill: integer expected";
            return null;
        };

        /**
         * Creates a s2cskill message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cskill
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cskill} s2cskill
         */
        s2cskill.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cskill)
                return object;
            var message = new $root.awesomepackage.s2cskill();
            if (object.type != null)
                message.type = object.type | 0;
            if (object.skill != null)
                message.skill = object.skill | 0;
            return message;
        };

        /**
         * Creates a plain object from a s2cskill message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cskill
         * @static
         * @param {awesomepackage.s2cskill} message s2cskill
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cskill.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.type = 0;
                object.skill = 0;
            }
            if (message.type != null && message.hasOwnProperty("type"))
                object.type = message.type;
            if (message.skill != null && message.hasOwnProperty("skill"))
                object.skill = message.skill;
            return object;
        };

        /**
         * Converts this s2cskill to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cskill
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cskill.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cskill;
    })();

    awesomepackage.s2cgetGold = (function() {

        /**
         * Properties of a s2cgetGold.
         * @memberof awesomepackage
         * @interface Is2cgetGold
         * @property {number} gold s2cgetGold gold
         */

        /**
         * Constructs a new s2cgetGold.
         * @memberof awesomepackage
         * @classdesc Represents a s2cgetGold.
         * @implements Is2cgetGold
         * @constructor
         * @param {awesomepackage.Is2cgetGold=} [properties] Properties to set
         */
        function s2cgetGold(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cgetGold gold.
         * @member {number} gold
         * @memberof awesomepackage.s2cgetGold
         * @instance
         */
        s2cgetGold.prototype.gold = 0;

        /**
         * Creates a new s2cgetGold instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cgetGold
         * @static
         * @param {awesomepackage.Is2cgetGold=} [properties] Properties to set
         * @returns {awesomepackage.s2cgetGold} s2cgetGold instance
         */
        s2cgetGold.create = function create(properties) {
            return new s2cgetGold(properties);
        };

        /**
         * Encodes the specified s2cgetGold message. Does not implicitly {@link awesomepackage.s2cgetGold.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cgetGold
         * @static
         * @param {awesomepackage.Is2cgetGold} message s2cgetGold message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cgetGold.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.gold);
            return writer;
        };

        /**
         * Encodes the specified s2cgetGold message, length delimited. Does not implicitly {@link awesomepackage.s2cgetGold.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cgetGold
         * @static
         * @param {awesomepackage.Is2cgetGold} message s2cgetGold message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cgetGold.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cgetGold message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cgetGold
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cgetGold} s2cgetGold
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cgetGold.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cgetGold();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.gold = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("gold"))
                throw $util.ProtocolError("missing required 'gold'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cgetGold message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cgetGold
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cgetGold} s2cgetGold
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cgetGold.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cgetGold message.
         * @function verify
         * @memberof awesomepackage.s2cgetGold
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cgetGold.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.gold))
                return "gold: integer expected";
            return null;
        };

        /**
         * Creates a s2cgetGold message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cgetGold
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cgetGold} s2cgetGold
         */
        s2cgetGold.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cgetGold)
                return object;
            var message = new $root.awesomepackage.s2cgetGold();
            if (object.gold != null)
                message.gold = object.gold | 0;
            return message;
        };

        /**
         * Creates a plain object from a s2cgetGold message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cgetGold
         * @static
         * @param {awesomepackage.s2cgetGold} message s2cgetGold
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cgetGold.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults)
                object.gold = 0;
            if (message.gold != null && message.hasOwnProperty("gold"))
                object.gold = message.gold;
            return object;
        };

        /**
         * Converts this s2cgetGold to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cgetGold
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cgetGold.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cgetGold;
    })();

    awesomepackage.c2stoNext = (function() {

        /**
         * Properties of a c2stoNext.
         * @memberof awesomepackage
         * @interface Ic2stoNext
         * @property {number} userId c2stoNext userId
         * @property {number} isToNext c2stoNext isToNext
         */

        /**
         * Constructs a new c2stoNext.
         * @memberof awesomepackage
         * @classdesc Represents a c2stoNext.
         * @implements Ic2stoNext
         * @constructor
         * @param {awesomepackage.Ic2stoNext=} [properties] Properties to set
         */
        function c2stoNext(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2stoNext userId.
         * @member {number} userId
         * @memberof awesomepackage.c2stoNext
         * @instance
         */
        c2stoNext.prototype.userId = 0;

        /**
         * c2stoNext isToNext.
         * @member {number} isToNext
         * @memberof awesomepackage.c2stoNext
         * @instance
         */
        c2stoNext.prototype.isToNext = 0;

        /**
         * Creates a new c2stoNext instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2stoNext
         * @static
         * @param {awesomepackage.Ic2stoNext=} [properties] Properties to set
         * @returns {awesomepackage.c2stoNext} c2stoNext instance
         */
        c2stoNext.create = function create(properties) {
            return new c2stoNext(properties);
        };

        /**
         * Encodes the specified c2stoNext message. Does not implicitly {@link awesomepackage.c2stoNext.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2stoNext
         * @static
         * @param {awesomepackage.Ic2stoNext} message c2stoNext message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2stoNext.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userId);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.isToNext);
            return writer;
        };

        /**
         * Encodes the specified c2stoNext message, length delimited. Does not implicitly {@link awesomepackage.c2stoNext.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2stoNext
         * @static
         * @param {awesomepackage.Ic2stoNext} message c2stoNext message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2stoNext.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2stoNext message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2stoNext
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2stoNext} c2stoNext
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2stoNext.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2stoNext();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.userId = reader.int32();
                    break;
                case 2:
                    message.isToNext = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            if (!message.hasOwnProperty("isToNext"))
                throw $util.ProtocolError("missing required 'isToNext'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2stoNext message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2stoNext
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2stoNext} c2stoNext
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2stoNext.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2stoNext message.
         * @function verify
         * @memberof awesomepackage.c2stoNext
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2stoNext.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            if (!$util.isInteger(message.isToNext))
                return "isToNext: integer expected";
            return null;
        };

        /**
         * Creates a c2stoNext message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2stoNext
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2stoNext} c2stoNext
         */
        c2stoNext.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2stoNext)
                return object;
            var message = new $root.awesomepackage.c2stoNext();
            if (object.userId != null)
                message.userId = object.userId | 0;
            if (object.isToNext != null)
                message.isToNext = object.isToNext | 0;
            return message;
        };

        /**
         * Creates a plain object from a c2stoNext message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2stoNext
         * @static
         * @param {awesomepackage.c2stoNext} message c2stoNext
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2stoNext.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.userId = 0;
                object.isToNext = 0;
            }
            if (message.userId != null && message.hasOwnProperty("userId"))
                object.userId = message.userId;
            if (message.isToNext != null && message.hasOwnProperty("isToNext"))
                object.isToNext = message.isToNext;
            return object;
        };

        /**
         * Converts this c2stoNext to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2stoNext
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2stoNext.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2stoNext;
    })();

    awesomepackage.s2ctoNext = (function() {

        /**
         * Properties of a s2ctoNext.
         * @memberof awesomepackage
         * @interface Is2ctoNext
         * @property {number} userId s2ctoNext userId
         * @property {number} isToNext s2ctoNext isToNext
         */

        /**
         * Constructs a new s2ctoNext.
         * @memberof awesomepackage
         * @classdesc Represents a s2ctoNext.
         * @implements Is2ctoNext
         * @constructor
         * @param {awesomepackage.Is2ctoNext=} [properties] Properties to set
         */
        function s2ctoNext(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2ctoNext userId.
         * @member {number} userId
         * @memberof awesomepackage.s2ctoNext
         * @instance
         */
        s2ctoNext.prototype.userId = 0;

        /**
         * s2ctoNext isToNext.
         * @member {number} isToNext
         * @memberof awesomepackage.s2ctoNext
         * @instance
         */
        s2ctoNext.prototype.isToNext = 0;

        /**
         * Creates a new s2ctoNext instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2ctoNext
         * @static
         * @param {awesomepackage.Is2ctoNext=} [properties] Properties to set
         * @returns {awesomepackage.s2ctoNext} s2ctoNext instance
         */
        s2ctoNext.create = function create(properties) {
            return new s2ctoNext(properties);
        };

        /**
         * Encodes the specified s2ctoNext message. Does not implicitly {@link awesomepackage.s2ctoNext.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2ctoNext
         * @static
         * @param {awesomepackage.Is2ctoNext} message s2ctoNext message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2ctoNext.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userId);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.isToNext);
            return writer;
        };

        /**
         * Encodes the specified s2ctoNext message, length delimited. Does not implicitly {@link awesomepackage.s2ctoNext.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2ctoNext
         * @static
         * @param {awesomepackage.Is2ctoNext} message s2ctoNext message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2ctoNext.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2ctoNext message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2ctoNext
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2ctoNext} s2ctoNext
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2ctoNext.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2ctoNext();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.userId = reader.int32();
                    break;
                case 2:
                    message.isToNext = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            if (!message.hasOwnProperty("isToNext"))
                throw $util.ProtocolError("missing required 'isToNext'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2ctoNext message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2ctoNext
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2ctoNext} s2ctoNext
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2ctoNext.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2ctoNext message.
         * @function verify
         * @memberof awesomepackage.s2ctoNext
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2ctoNext.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            if (!$util.isInteger(message.isToNext))
                return "isToNext: integer expected";
            return null;
        };

        /**
         * Creates a s2ctoNext message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2ctoNext
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2ctoNext} s2ctoNext
         */
        s2ctoNext.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2ctoNext)
                return object;
            var message = new $root.awesomepackage.s2ctoNext();
            if (object.userId != null)
                message.userId = object.userId | 0;
            if (object.isToNext != null)
                message.isToNext = object.isToNext | 0;
            return message;
        };

        /**
         * Creates a plain object from a s2ctoNext message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2ctoNext
         * @static
         * @param {awesomepackage.s2ctoNext} message s2ctoNext
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2ctoNext.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.userId = 0;
                object.isToNext = 0;
            }
            if (message.userId != null && message.hasOwnProperty("userId"))
                object.userId = message.userId;
            if (message.isToNext != null && message.hasOwnProperty("isToNext"))
                object.isToNext = message.isToNext;
            return object;
        };

        /**
         * Converts this s2ctoNext to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2ctoNext
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2ctoNext.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2ctoNext;
    })();

    awesomepackage.c2sinvite = (function() {

        /**
         * Properties of a c2sinvite.
         * @memberof awesomepackage
         * @interface Ic2sinvite
         * @property {number} userId c2sinvite userId
         * @property {number} invitation c2sinvite invitation
         */

        /**
         * Constructs a new c2sinvite.
         * @memberof awesomepackage
         * @classdesc Represents a c2sinvite.
         * @implements Ic2sinvite
         * @constructor
         * @param {awesomepackage.Ic2sinvite=} [properties] Properties to set
         */
        function c2sinvite(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sinvite userId.
         * @member {number} userId
         * @memberof awesomepackage.c2sinvite
         * @instance
         */
        c2sinvite.prototype.userId = 0;

        /**
         * c2sinvite invitation.
         * @member {number} invitation
         * @memberof awesomepackage.c2sinvite
         * @instance
         */
        c2sinvite.prototype.invitation = 0;

        /**
         * Creates a new c2sinvite instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sinvite
         * @static
         * @param {awesomepackage.Ic2sinvite=} [properties] Properties to set
         * @returns {awesomepackage.c2sinvite} c2sinvite instance
         */
        c2sinvite.create = function create(properties) {
            return new c2sinvite(properties);
        };

        /**
         * Encodes the specified c2sinvite message. Does not implicitly {@link awesomepackage.c2sinvite.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sinvite
         * @static
         * @param {awesomepackage.Ic2sinvite} message c2sinvite message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sinvite.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userId);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.invitation);
            return writer;
        };

        /**
         * Encodes the specified c2sinvite message, length delimited. Does not implicitly {@link awesomepackage.c2sinvite.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sinvite
         * @static
         * @param {awesomepackage.Ic2sinvite} message c2sinvite message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sinvite.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sinvite message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sinvite
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sinvite} c2sinvite
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sinvite.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sinvite();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.userId = reader.int32();
                    break;
                case 2:
                    message.invitation = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            if (!message.hasOwnProperty("invitation"))
                throw $util.ProtocolError("missing required 'invitation'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sinvite message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sinvite
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sinvite} c2sinvite
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sinvite.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sinvite message.
         * @function verify
         * @memberof awesomepackage.c2sinvite
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sinvite.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            if (!$util.isInteger(message.invitation))
                return "invitation: integer expected";
            return null;
        };

        /**
         * Creates a c2sinvite message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sinvite
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sinvite} c2sinvite
         */
        c2sinvite.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sinvite)
                return object;
            var message = new $root.awesomepackage.c2sinvite();
            if (object.userId != null)
                message.userId = object.userId | 0;
            if (object.invitation != null)
                message.invitation = object.invitation | 0;
            return message;
        };

        /**
         * Creates a plain object from a c2sinvite message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sinvite
         * @static
         * @param {awesomepackage.c2sinvite} message c2sinvite
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sinvite.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.userId = 0;
                object.invitation = 0;
            }
            if (message.userId != null && message.hasOwnProperty("userId"))
                object.userId = message.userId;
            if (message.invitation != null && message.hasOwnProperty("invitation"))
                object.invitation = message.invitation;
            return object;
        };

        /**
         * Converts this c2sinvite to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sinvite
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sinvite.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sinvite;
    })();

    awesomepackage.s2cErroMessage = (function() {

        /**
         * Properties of a s2cErroMessage.
         * @memberof awesomepackage
         * @interface Is2cErroMessage
         * @property {number} errorId s2cErroMessage errorId
         * @property {string} errorMessage s2cErroMessage errorMessage
         */

        /**
         * Constructs a new s2cErroMessage.
         * @memberof awesomepackage
         * @classdesc Represents a s2cErroMessage.
         * @implements Is2cErroMessage
         * @constructor
         * @param {awesomepackage.Is2cErroMessage=} [properties] Properties to set
         */
        function s2cErroMessage(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cErroMessage errorId.
         * @member {number} errorId
         * @memberof awesomepackage.s2cErroMessage
         * @instance
         */
        s2cErroMessage.prototype.errorId = 0;

        /**
         * s2cErroMessage errorMessage.
         * @member {string} errorMessage
         * @memberof awesomepackage.s2cErroMessage
         * @instance
         */
        s2cErroMessage.prototype.errorMessage = "";

        /**
         * Creates a new s2cErroMessage instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cErroMessage
         * @static
         * @param {awesomepackage.Is2cErroMessage=} [properties] Properties to set
         * @returns {awesomepackage.s2cErroMessage} s2cErroMessage instance
         */
        s2cErroMessage.create = function create(properties) {
            return new s2cErroMessage(properties);
        };

        /**
         * Encodes the specified s2cErroMessage message. Does not implicitly {@link awesomepackage.s2cErroMessage.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cErroMessage
         * @static
         * @param {awesomepackage.Is2cErroMessage} message s2cErroMessage message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cErroMessage.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.errorId);
            writer.uint32(/* id 2, wireType 2 =*/18).string(message.errorMessage);
            return writer;
        };

        /**
         * Encodes the specified s2cErroMessage message, length delimited. Does not implicitly {@link awesomepackage.s2cErroMessage.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cErroMessage
         * @static
         * @param {awesomepackage.Is2cErroMessage} message s2cErroMessage message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cErroMessage.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cErroMessage message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cErroMessage
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cErroMessage} s2cErroMessage
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cErroMessage.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cErroMessage();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.errorId = reader.int32();
                    break;
                case 2:
                    message.errorMessage = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("errorId"))
                throw $util.ProtocolError("missing required 'errorId'", { instance: message });
            if (!message.hasOwnProperty("errorMessage"))
                throw $util.ProtocolError("missing required 'errorMessage'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cErroMessage message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cErroMessage
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cErroMessage} s2cErroMessage
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cErroMessage.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cErroMessage message.
         * @function verify
         * @memberof awesomepackage.s2cErroMessage
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cErroMessage.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.errorId))
                return "errorId: integer expected";
            if (!$util.isString(message.errorMessage))
                return "errorMessage: string expected";
            return null;
        };

        /**
         * Creates a s2cErroMessage message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cErroMessage
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cErroMessage} s2cErroMessage
         */
        s2cErroMessage.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cErroMessage)
                return object;
            var message = new $root.awesomepackage.s2cErroMessage();
            if (object.errorId != null)
                message.errorId = object.errorId | 0;
            if (object.errorMessage != null)
                message.errorMessage = String(object.errorMessage);
            return message;
        };

        /**
         * Creates a plain object from a s2cErroMessage message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cErroMessage
         * @static
         * @param {awesomepackage.s2cErroMessage} message s2cErroMessage
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cErroMessage.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.errorId = 0;
                object.errorMessage = "";
            }
            if (message.errorId != null && message.hasOwnProperty("errorId"))
                object.errorId = message.errorId;
            if (message.errorMessage != null && message.hasOwnProperty("errorMessage"))
                object.errorMessage = message.errorMessage;
            return object;
        };

        /**
         * Converts this s2cErroMessage to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cErroMessage
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cErroMessage.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cErroMessage;
    })();

    awesomepackage.c2sEnterRoom = (function() {

        /**
         * Properties of a c2sEnterRoom.
         * @memberof awesomepackage
         * @interface Ic2sEnterRoom
         * @property {number} account c2sEnterRoom account
         * @property {string} deessUp c2sEnterRoom deessUp
         */

        /**
         * Constructs a new c2sEnterRoom.
         * @memberof awesomepackage
         * @classdesc Represents a c2sEnterRoom.
         * @implements Ic2sEnterRoom
         * @constructor
         * @param {awesomepackage.Ic2sEnterRoom=} [properties] Properties to set
         */
        function c2sEnterRoom(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sEnterRoom account.
         * @member {number} account
         * @memberof awesomepackage.c2sEnterRoom
         * @instance
         */
        c2sEnterRoom.prototype.account = 0;

        /**
         * c2sEnterRoom deessUp.
         * @member {string} deessUp
         * @memberof awesomepackage.c2sEnterRoom
         * @instance
         */
        c2sEnterRoom.prototype.deessUp = "";

        /**
         * Creates a new c2sEnterRoom instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sEnterRoom
         * @static
         * @param {awesomepackage.Ic2sEnterRoom=} [properties] Properties to set
         * @returns {awesomepackage.c2sEnterRoom} c2sEnterRoom instance
         */
        c2sEnterRoom.create = function create(properties) {
            return new c2sEnterRoom(properties);
        };

        /**
         * Encodes the specified c2sEnterRoom message. Does not implicitly {@link awesomepackage.c2sEnterRoom.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sEnterRoom
         * @static
         * @param {awesomepackage.Ic2sEnterRoom} message c2sEnterRoom message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sEnterRoom.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.account);
            writer.uint32(/* id 2, wireType 2 =*/18).string(message.deessUp);
            return writer;
        };

        /**
         * Encodes the specified c2sEnterRoom message, length delimited. Does not implicitly {@link awesomepackage.c2sEnterRoom.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sEnterRoom
         * @static
         * @param {awesomepackage.Ic2sEnterRoom} message c2sEnterRoom message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sEnterRoom.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sEnterRoom message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sEnterRoom
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sEnterRoom} c2sEnterRoom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sEnterRoom.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sEnterRoom();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.account = reader.int32();
                    break;
                case 2:
                    message.deessUp = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("account"))
                throw $util.ProtocolError("missing required 'account'", { instance: message });
            if (!message.hasOwnProperty("deessUp"))
                throw $util.ProtocolError("missing required 'deessUp'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sEnterRoom message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sEnterRoom
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sEnterRoom} c2sEnterRoom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sEnterRoom.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sEnterRoom message.
         * @function verify
         * @memberof awesomepackage.c2sEnterRoom
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sEnterRoom.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.account))
                return "account: integer expected";
            if (!$util.isString(message.deessUp))
                return "deessUp: string expected";
            return null;
        };

        /**
         * Creates a c2sEnterRoom message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sEnterRoom
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sEnterRoom} c2sEnterRoom
         */
        c2sEnterRoom.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sEnterRoom)
                return object;
            var message = new $root.awesomepackage.c2sEnterRoom();
            if (object.account != null)
                message.account = object.account | 0;
            if (object.deessUp != null)
                message.deessUp = String(object.deessUp);
            return message;
        };

        /**
         * Creates a plain object from a c2sEnterRoom message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sEnterRoom
         * @static
         * @param {awesomepackage.c2sEnterRoom} message c2sEnterRoom
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sEnterRoom.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.account = 0;
                object.deessUp = "";
            }
            if (message.account != null && message.hasOwnProperty("account"))
                object.account = message.account;
            if (message.deessUp != null && message.hasOwnProperty("deessUp"))
                object.deessUp = message.deessUp;
            return object;
        };

        /**
         * Converts this c2sEnterRoom to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sEnterRoom
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sEnterRoom.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sEnterRoom;
    })();

    awesomepackage.s2cEnterRoom = (function() {

        /**
         * Properties of a s2cEnterRoom.
         * @memberof awesomepackage
         * @interface Is2cEnterRoom
         * @property {number} gameWidth s2cEnterRoom gameWidth
         * @property {number} gameHeight s2cEnterRoom gameHeight
         * @property {number} roomId s2cEnterRoom roomId
         * @property {number} roomTime s2cEnterRoom roomTime
         * @property {number|Long} roomStartTime s2cEnterRoom roomStartTime
         */

        /**
         * Constructs a new s2cEnterRoom.
         * @memberof awesomepackage
         * @classdesc Represents a s2cEnterRoom.
         * @implements Is2cEnterRoom
         * @constructor
         * @param {awesomepackage.Is2cEnterRoom=} [properties] Properties to set
         */
        function s2cEnterRoom(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cEnterRoom gameWidth.
         * @member {number} gameWidth
         * @memberof awesomepackage.s2cEnterRoom
         * @instance
         */
        s2cEnterRoom.prototype.gameWidth = 0;

        /**
         * s2cEnterRoom gameHeight.
         * @member {number} gameHeight
         * @memberof awesomepackage.s2cEnterRoom
         * @instance
         */
        s2cEnterRoom.prototype.gameHeight = 0;

        /**
         * s2cEnterRoom roomId.
         * @member {number} roomId
         * @memberof awesomepackage.s2cEnterRoom
         * @instance
         */
        s2cEnterRoom.prototype.roomId = 0;

        /**
         * s2cEnterRoom roomTime.
         * @member {number} roomTime
         * @memberof awesomepackage.s2cEnterRoom
         * @instance
         */
        s2cEnterRoom.prototype.roomTime = 0;

        /**
         * s2cEnterRoom roomStartTime.
         * @member {number|Long} roomStartTime
         * @memberof awesomepackage.s2cEnterRoom
         * @instance
         */
        s2cEnterRoom.prototype.roomStartTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;

        /**
         * Creates a new s2cEnterRoom instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cEnterRoom
         * @static
         * @param {awesomepackage.Is2cEnterRoom=} [properties] Properties to set
         * @returns {awesomepackage.s2cEnterRoom} s2cEnterRoom instance
         */
        s2cEnterRoom.create = function create(properties) {
            return new s2cEnterRoom(properties);
        };

        /**
         * Encodes the specified s2cEnterRoom message. Does not implicitly {@link awesomepackage.s2cEnterRoom.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cEnterRoom
         * @static
         * @param {awesomepackage.Is2cEnterRoom} message s2cEnterRoom message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cEnterRoom.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.gameWidth);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.gameHeight);
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.roomId);
            writer.uint32(/* id 4, wireType 0 =*/32).int32(message.roomTime);
            writer.uint32(/* id 5, wireType 0 =*/40).int64(message.roomStartTime);
            return writer;
        };

        /**
         * Encodes the specified s2cEnterRoom message, length delimited. Does not implicitly {@link awesomepackage.s2cEnterRoom.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cEnterRoom
         * @static
         * @param {awesomepackage.Is2cEnterRoom} message s2cEnterRoom message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cEnterRoom.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cEnterRoom message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cEnterRoom
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cEnterRoom} s2cEnterRoom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cEnterRoom.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cEnterRoom();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.gameWidth = reader.int32();
                    break;
                case 2:
                    message.gameHeight = reader.int32();
                    break;
                case 3:
                    message.roomId = reader.int32();
                    break;
                case 4:
                    message.roomTime = reader.int32();
                    break;
                case 5:
                    message.roomStartTime = reader.int64();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("gameWidth"))
                throw $util.ProtocolError("missing required 'gameWidth'", { instance: message });
            if (!message.hasOwnProperty("gameHeight"))
                throw $util.ProtocolError("missing required 'gameHeight'", { instance: message });
            if (!message.hasOwnProperty("roomId"))
                throw $util.ProtocolError("missing required 'roomId'", { instance: message });
            if (!message.hasOwnProperty("roomTime"))
                throw $util.ProtocolError("missing required 'roomTime'", { instance: message });
            if (!message.hasOwnProperty("roomStartTime"))
                throw $util.ProtocolError("missing required 'roomStartTime'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cEnterRoom message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cEnterRoom
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cEnterRoom} s2cEnterRoom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cEnterRoom.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cEnterRoom message.
         * @function verify
         * @memberof awesomepackage.s2cEnterRoom
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cEnterRoom.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.gameWidth))
                return "gameWidth: integer expected";
            if (!$util.isInteger(message.gameHeight))
                return "gameHeight: integer expected";
            if (!$util.isInteger(message.roomId))
                return "roomId: integer expected";
            if (!$util.isInteger(message.roomTime))
                return "roomTime: integer expected";
            if (!$util.isInteger(message.roomStartTime) && !(message.roomStartTime && $util.isInteger(message.roomStartTime.low) && $util.isInteger(message.roomStartTime.high)))
                return "roomStartTime: integer|Long expected";
            return null;
        };

        /**
         * Creates a s2cEnterRoom message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cEnterRoom
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cEnterRoom} s2cEnterRoom
         */
        s2cEnterRoom.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cEnterRoom)
                return object;
            var message = new $root.awesomepackage.s2cEnterRoom();
            if (object.gameWidth != null)
                message.gameWidth = object.gameWidth | 0;
            if (object.gameHeight != null)
                message.gameHeight = object.gameHeight | 0;
            if (object.roomId != null)
                message.roomId = object.roomId | 0;
            if (object.roomTime != null)
                message.roomTime = object.roomTime | 0;
            if (object.roomStartTime != null)
                if ($util.Long)
                    (message.roomStartTime = $util.Long.fromValue(object.roomStartTime)).unsigned = false;
                else if (typeof object.roomStartTime === "string")
                    message.roomStartTime = parseInt(object.roomStartTime, 10);
                else if (typeof object.roomStartTime === "number")
                    message.roomStartTime = object.roomStartTime;
                else if (typeof object.roomStartTime === "object")
                    message.roomStartTime = new $util.LongBits(object.roomStartTime.low >>> 0, object.roomStartTime.high >>> 0).toNumber();
            return message;
        };

        /**
         * Creates a plain object from a s2cEnterRoom message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cEnterRoom
         * @static
         * @param {awesomepackage.s2cEnterRoom} message s2cEnterRoom
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cEnterRoom.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.gameWidth = 0;
                object.gameHeight = 0;
                object.roomId = 0;
                object.roomTime = 0;
                if ($util.Long) {
                    var long = new $util.Long(0, 0, false);
                    object.roomStartTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
                } else
                    object.roomStartTime = options.longs === String ? "0" : 0;
            }
            if (message.gameWidth != null && message.hasOwnProperty("gameWidth"))
                object.gameWidth = message.gameWidth;
            if (message.gameHeight != null && message.hasOwnProperty("gameHeight"))
                object.gameHeight = message.gameHeight;
            if (message.roomId != null && message.hasOwnProperty("roomId"))
                object.roomId = message.roomId;
            if (message.roomTime != null && message.hasOwnProperty("roomTime"))
                object.roomTime = message.roomTime;
            if (message.roomStartTime != null && message.hasOwnProperty("roomStartTime"))
                if (typeof message.roomStartTime === "number")
                    object.roomStartTime = options.longs === String ? String(message.roomStartTime) : message.roomStartTime;
                else
                    object.roomStartTime = options.longs === String ? $util.Long.prototype.toString.call(message.roomStartTime) : options.longs === Number ? new $util.LongBits(message.roomStartTime.low >>> 0, message.roomStartTime.high >>> 0).toNumber() : message.roomStartTime;
            return object;
        };

        /**
         * Converts this s2cEnterRoom to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cEnterRoom
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cEnterRoom.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cEnterRoom;
    })();

    awesomepackage.c2sPlayerMove = (function() {

        /**
         * Properties of a c2sPlayerMove.
         * @memberof awesomepackage
         * @interface Ic2sPlayerMove
         * @property {number} account c2sPlayerMove account
         * @property {number} targetx c2sPlayerMove targetx
         * @property {number} targety c2sPlayerMove targety
         */

        /**
         * Constructs a new c2sPlayerMove.
         * @memberof awesomepackage
         * @classdesc Represents a c2sPlayerMove.
         * @implements Ic2sPlayerMove
         * @constructor
         * @param {awesomepackage.Ic2sPlayerMove=} [properties] Properties to set
         */
        function c2sPlayerMove(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sPlayerMove account.
         * @member {number} account
         * @memberof awesomepackage.c2sPlayerMove
         * @instance
         */
        c2sPlayerMove.prototype.account = 0;

        /**
         * c2sPlayerMove targetx.
         * @member {number} targetx
         * @memberof awesomepackage.c2sPlayerMove
         * @instance
         */
        c2sPlayerMove.prototype.targetx = 0;

        /**
         * c2sPlayerMove targety.
         * @member {number} targety
         * @memberof awesomepackage.c2sPlayerMove
         * @instance
         */
        c2sPlayerMove.prototype.targety = 0;

        /**
         * Creates a new c2sPlayerMove instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sPlayerMove
         * @static
         * @param {awesomepackage.Ic2sPlayerMove=} [properties] Properties to set
         * @returns {awesomepackage.c2sPlayerMove} c2sPlayerMove instance
         */
        c2sPlayerMove.create = function create(properties) {
            return new c2sPlayerMove(properties);
        };

        /**
         * Encodes the specified c2sPlayerMove message. Does not implicitly {@link awesomepackage.c2sPlayerMove.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sPlayerMove
         * @static
         * @param {awesomepackage.Ic2sPlayerMove} message c2sPlayerMove message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sPlayerMove.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.account);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.targetx);
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.targety);
            return writer;
        };

        /**
         * Encodes the specified c2sPlayerMove message, length delimited. Does not implicitly {@link awesomepackage.c2sPlayerMove.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sPlayerMove
         * @static
         * @param {awesomepackage.Ic2sPlayerMove} message c2sPlayerMove message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sPlayerMove.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sPlayerMove message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sPlayerMove
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sPlayerMove} c2sPlayerMove
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sPlayerMove.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sPlayerMove();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.account = reader.int32();
                    break;
                case 2:
                    message.targetx = reader.int32();
                    break;
                case 3:
                    message.targety = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("account"))
                throw $util.ProtocolError("missing required 'account'", { instance: message });
            if (!message.hasOwnProperty("targetx"))
                throw $util.ProtocolError("missing required 'targetx'", { instance: message });
            if (!message.hasOwnProperty("targety"))
                throw $util.ProtocolError("missing required 'targety'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sPlayerMove message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sPlayerMove
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sPlayerMove} c2sPlayerMove
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sPlayerMove.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sPlayerMove message.
         * @function verify
         * @memberof awesomepackage.c2sPlayerMove
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sPlayerMove.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.account))
                return "account: integer expected";
            if (!$util.isInteger(message.targetx))
                return "targetx: integer expected";
            if (!$util.isInteger(message.targety))
                return "targety: integer expected";
            return null;
        };

        /**
         * Creates a c2sPlayerMove message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sPlayerMove
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sPlayerMove} c2sPlayerMove
         */
        c2sPlayerMove.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sPlayerMove)
                return object;
            var message = new $root.awesomepackage.c2sPlayerMove();
            if (object.account != null)
                message.account = object.account | 0;
            if (object.targetx != null)
                message.targetx = object.targetx | 0;
            if (object.targety != null)
                message.targety = object.targety | 0;
            return message;
        };

        /**
         * Creates a plain object from a c2sPlayerMove message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sPlayerMove
         * @static
         * @param {awesomepackage.c2sPlayerMove} message c2sPlayerMove
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sPlayerMove.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.account = 0;
                object.targetx = 0;
                object.targety = 0;
            }
            if (message.account != null && message.hasOwnProperty("account"))
                object.account = message.account;
            if (message.targetx != null && message.hasOwnProperty("targetx"))
                object.targetx = message.targetx;
            if (message.targety != null && message.hasOwnProperty("targety"))
                object.targety = message.targety;
            return object;
        };

        /**
         * Converts this c2sPlayerMove to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sPlayerMove
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sPlayerMove.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sPlayerMove;
    })();

    awesomepackage.s2cPlayerMove = (function() {

        /**
         * Properties of a s2cPlayerMove.
         * @memberof awesomepackage
         * @interface Is2cPlayerMove
         * @property {Array.<awesomepackage.IroomPlayerInfo>|null} [userData] s2cPlayerMove userData
         * @property {Array.<awesomepackage.ImLine>|null} [lineData] s2cPlayerMove lineData
         * @property {Array.<awesomepackage.ImProp>|null} [propData] s2cPlayerMove propData
         */

        /**
         * Constructs a new s2cPlayerMove.
         * @memberof awesomepackage
         * @classdesc Represents a s2cPlayerMove.
         * @implements Is2cPlayerMove
         * @constructor
         * @param {awesomepackage.Is2cPlayerMove=} [properties] Properties to set
         */
        function s2cPlayerMove(properties) {
            this.userData = [];
            this.lineData = [];
            this.propData = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cPlayerMove userData.
         * @member {Array.<awesomepackage.IroomPlayerInfo>} userData
         * @memberof awesomepackage.s2cPlayerMove
         * @instance
         */
        s2cPlayerMove.prototype.userData = $util.emptyArray;

        /**
         * s2cPlayerMove lineData.
         * @member {Array.<awesomepackage.ImLine>} lineData
         * @memberof awesomepackage.s2cPlayerMove
         * @instance
         */
        s2cPlayerMove.prototype.lineData = $util.emptyArray;

        /**
         * s2cPlayerMove propData.
         * @member {Array.<awesomepackage.ImProp>} propData
         * @memberof awesomepackage.s2cPlayerMove
         * @instance
         */
        s2cPlayerMove.prototype.propData = $util.emptyArray;

        /**
         * Creates a new s2cPlayerMove instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cPlayerMove
         * @static
         * @param {awesomepackage.Is2cPlayerMove=} [properties] Properties to set
         * @returns {awesomepackage.s2cPlayerMove} s2cPlayerMove instance
         */
        s2cPlayerMove.create = function create(properties) {
            return new s2cPlayerMove(properties);
        };

        /**
         * Encodes the specified s2cPlayerMove message. Does not implicitly {@link awesomepackage.s2cPlayerMove.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cPlayerMove
         * @static
         * @param {awesomepackage.Is2cPlayerMove} message s2cPlayerMove message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cPlayerMove.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.userData != null && message.userData.length)
                for (var i = 0; i < message.userData.length; ++i)
                    $root.awesomepackage.roomPlayerInfo.encode(message.userData[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
            if (message.lineData != null && message.lineData.length)
                for (var i = 0; i < message.lineData.length; ++i)
                    $root.awesomepackage.mLine.encode(message.lineData[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
            if (message.propData != null && message.propData.length)
                for (var i = 0; i < message.propData.length; ++i)
                    $root.awesomepackage.mProp.encode(message.propData[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
            return writer;
        };

        /**
         * Encodes the specified s2cPlayerMove message, length delimited. Does not implicitly {@link awesomepackage.s2cPlayerMove.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cPlayerMove
         * @static
         * @param {awesomepackage.Is2cPlayerMove} message s2cPlayerMove message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cPlayerMove.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cPlayerMove message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cPlayerMove
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cPlayerMove} s2cPlayerMove
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cPlayerMove.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cPlayerMove();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    if (!(message.userData && message.userData.length))
                        message.userData = [];
                    message.userData.push($root.awesomepackage.roomPlayerInfo.decode(reader, reader.uint32()));
                    break;
                case 2:
                    if (!(message.lineData && message.lineData.length))
                        message.lineData = [];
                    message.lineData.push($root.awesomepackage.mLine.decode(reader, reader.uint32()));
                    break;
                case 3:
                    if (!(message.propData && message.propData.length))
                        message.propData = [];
                    message.propData.push($root.awesomepackage.mProp.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a s2cPlayerMove message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cPlayerMove
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cPlayerMove} s2cPlayerMove
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cPlayerMove.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cPlayerMove message.
         * @function verify
         * @memberof awesomepackage.s2cPlayerMove
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cPlayerMove.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.userData != null && message.hasOwnProperty("userData")) {
                if (!Array.isArray(message.userData))
                    return "userData: array expected";
                for (var i = 0; i < message.userData.length; ++i) {
                    var error = $root.awesomepackage.roomPlayerInfo.verify(message.userData[i]);
                    if (error)
                        return "userData." + error;
                }
            }
            if (message.lineData != null && message.hasOwnProperty("lineData")) {
                if (!Array.isArray(message.lineData))
                    return "lineData: array expected";
                for (var i = 0; i < message.lineData.length; ++i) {
                    var error = $root.awesomepackage.mLine.verify(message.lineData[i]);
                    if (error)
                        return "lineData." + error;
                }
            }
            if (message.propData != null && message.hasOwnProperty("propData")) {
                if (!Array.isArray(message.propData))
                    return "propData: array expected";
                for (var i = 0; i < message.propData.length; ++i) {
                    var error = $root.awesomepackage.mProp.verify(message.propData[i]);
                    if (error)
                        return "propData." + error;
                }
            }
            return null;
        };

        /**
         * Creates a s2cPlayerMove message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cPlayerMove
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cPlayerMove} s2cPlayerMove
         */
        s2cPlayerMove.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cPlayerMove)
                return object;
            var message = new $root.awesomepackage.s2cPlayerMove();
            if (object.userData) {
                if (!Array.isArray(object.userData))
                    throw TypeError(".awesomepackage.s2cPlayerMove.userData: array expected");
                message.userData = [];
                for (var i = 0; i < object.userData.length; ++i) {
                    if (typeof object.userData[i] !== "object")
                        throw TypeError(".awesomepackage.s2cPlayerMove.userData: object expected");
                    message.userData[i] = $root.awesomepackage.roomPlayerInfo.fromObject(object.userData[i]);
                }
            }
            if (object.lineData) {
                if (!Array.isArray(object.lineData))
                    throw TypeError(".awesomepackage.s2cPlayerMove.lineData: array expected");
                message.lineData = [];
                for (var i = 0; i < object.lineData.length; ++i) {
                    if (typeof object.lineData[i] !== "object")
                        throw TypeError(".awesomepackage.s2cPlayerMove.lineData: object expected");
                    message.lineData[i] = $root.awesomepackage.mLine.fromObject(object.lineData[i]);
                }
            }
            if (object.propData) {
                if (!Array.isArray(object.propData))
                    throw TypeError(".awesomepackage.s2cPlayerMove.propData: array expected");
                message.propData = [];
                for (var i = 0; i < object.propData.length; ++i) {
                    if (typeof object.propData[i] !== "object")
                        throw TypeError(".awesomepackage.s2cPlayerMove.propData: object expected");
                    message.propData[i] = $root.awesomepackage.mProp.fromObject(object.propData[i]);
                }
            }
            return message;
        };

        /**
         * Creates a plain object from a s2cPlayerMove message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cPlayerMove
         * @static
         * @param {awesomepackage.s2cPlayerMove} message s2cPlayerMove
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cPlayerMove.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.arrays || options.defaults) {
                object.userData = [];
                object.lineData = [];
                object.propData = [];
            }
            if (message.userData && message.userData.length) {
                object.userData = [];
                for (var j = 0; j < message.userData.length; ++j)
                    object.userData[j] = $root.awesomepackage.roomPlayerInfo.toObject(message.userData[j], options);
            }
            if (message.lineData && message.lineData.length) {
                object.lineData = [];
                for (var j = 0; j < message.lineData.length; ++j)
                    object.lineData[j] = $root.awesomepackage.mLine.toObject(message.lineData[j], options);
            }
            if (message.propData && message.propData.length) {
                object.propData = [];
                for (var j = 0; j < message.propData.length; ++j)
                    object.propData[j] = $root.awesomepackage.mProp.toObject(message.propData[j], options);
            }
            return object;
        };

        /**
         * Converts this s2cPlayerMove to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cPlayerMove
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cPlayerMove.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cPlayerMove;
    })();

    awesomepackage.c2sChangtype = (function() {

        /**
         * Properties of a c2sChangtype.
         * @memberof awesomepackage
         * @interface Ic2sChangtype
         * @property {number} account c2sChangtype account
         * @property {string} sign c2sChangtype sign
         */

        /**
         * Constructs a new c2sChangtype.
         * @memberof awesomepackage
         * @classdesc Represents a c2sChangtype.
         * @implements Ic2sChangtype
         * @constructor
         * @param {awesomepackage.Ic2sChangtype=} [properties] Properties to set
         */
        function c2sChangtype(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sChangtype account.
         * @member {number} account
         * @memberof awesomepackage.c2sChangtype
         * @instance
         */
        c2sChangtype.prototype.account = 0;

        /**
         * c2sChangtype sign.
         * @member {string} sign
         * @memberof awesomepackage.c2sChangtype
         * @instance
         */
        c2sChangtype.prototype.sign = "";

        /**
         * Creates a new c2sChangtype instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sChangtype
         * @static
         * @param {awesomepackage.Ic2sChangtype=} [properties] Properties to set
         * @returns {awesomepackage.c2sChangtype} c2sChangtype instance
         */
        c2sChangtype.create = function create(properties) {
            return new c2sChangtype(properties);
        };

        /**
         * Encodes the specified c2sChangtype message. Does not implicitly {@link awesomepackage.c2sChangtype.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sChangtype
         * @static
         * @param {awesomepackage.Ic2sChangtype} message c2sChangtype message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sChangtype.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.account);
            writer.uint32(/* id 2, wireType 2 =*/18).string(message.sign);
            return writer;
        };

        /**
         * Encodes the specified c2sChangtype message, length delimited. Does not implicitly {@link awesomepackage.c2sChangtype.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sChangtype
         * @static
         * @param {awesomepackage.Ic2sChangtype} message c2sChangtype message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sChangtype.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sChangtype message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sChangtype
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sChangtype} c2sChangtype
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sChangtype.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sChangtype();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.account = reader.int32();
                    break;
                case 2:
                    message.sign = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("account"))
                throw $util.ProtocolError("missing required 'account'", { instance: message });
            if (!message.hasOwnProperty("sign"))
                throw $util.ProtocolError("missing required 'sign'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sChangtype message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sChangtype
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sChangtype} c2sChangtype
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sChangtype.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sChangtype message.
         * @function verify
         * @memberof awesomepackage.c2sChangtype
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sChangtype.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.account))
                return "account: integer expected";
            if (!$util.isString(message.sign))
                return "sign: string expected";
            return null;
        };

        /**
         * Creates a c2sChangtype message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sChangtype
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sChangtype} c2sChangtype
         */
        c2sChangtype.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sChangtype)
                return object;
            var message = new $root.awesomepackage.c2sChangtype();
            if (object.account != null)
                message.account = object.account | 0;
            if (object.sign != null)
                message.sign = String(object.sign);
            return message;
        };

        /**
         * Creates a plain object from a c2sChangtype message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sChangtype
         * @static
         * @param {awesomepackage.c2sChangtype} message c2sChangtype
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sChangtype.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.account = 0;
                object.sign = "";
            }
            if (message.account != null && message.hasOwnProperty("account"))
                object.account = message.account;
            if (message.sign != null && message.hasOwnProperty("sign"))
                object.sign = message.sign;
            return object;
        };

        /**
         * Converts this c2sChangtype to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sChangtype
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sChangtype.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sChangtype;
    })();

    awesomepackage.c2sBackToHall = (function() {

        /**
         * Properties of a c2sBackToHall.
         * @memberof awesomepackage
         * @interface Ic2sBackToHall
         * @property {number} account c2sBackToHall account
         * @property {string} sign c2sBackToHall sign
         */

        /**
         * Constructs a new c2sBackToHall.
         * @memberof awesomepackage
         * @classdesc Represents a c2sBackToHall.
         * @implements Ic2sBackToHall
         * @constructor
         * @param {awesomepackage.Ic2sBackToHall=} [properties] Properties to set
         */
        function c2sBackToHall(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sBackToHall account.
         * @member {number} account
         * @memberof awesomepackage.c2sBackToHall
         * @instance
         */
        c2sBackToHall.prototype.account = 0;

        /**
         * c2sBackToHall sign.
         * @member {string} sign
         * @memberof awesomepackage.c2sBackToHall
         * @instance
         */
        c2sBackToHall.prototype.sign = "";

        /**
         * Creates a new c2sBackToHall instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sBackToHall
         * @static
         * @param {awesomepackage.Ic2sBackToHall=} [properties] Properties to set
         * @returns {awesomepackage.c2sBackToHall} c2sBackToHall instance
         */
        c2sBackToHall.create = function create(properties) {
            return new c2sBackToHall(properties);
        };

        /**
         * Encodes the specified c2sBackToHall message. Does not implicitly {@link awesomepackage.c2sBackToHall.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sBackToHall
         * @static
         * @param {awesomepackage.Ic2sBackToHall} message c2sBackToHall message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sBackToHall.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.account);
            writer.uint32(/* id 2, wireType 2 =*/18).string(message.sign);
            return writer;
        };

        /**
         * Encodes the specified c2sBackToHall message, length delimited. Does not implicitly {@link awesomepackage.c2sBackToHall.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sBackToHall
         * @static
         * @param {awesomepackage.Ic2sBackToHall} message c2sBackToHall message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sBackToHall.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sBackToHall message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sBackToHall
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sBackToHall} c2sBackToHall
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sBackToHall.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sBackToHall();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.account = reader.int32();
                    break;
                case 2:
                    message.sign = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("account"))
                throw $util.ProtocolError("missing required 'account'", { instance: message });
            if (!message.hasOwnProperty("sign"))
                throw $util.ProtocolError("missing required 'sign'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sBackToHall message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sBackToHall
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sBackToHall} c2sBackToHall
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sBackToHall.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sBackToHall message.
         * @function verify
         * @memberof awesomepackage.c2sBackToHall
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sBackToHall.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.account))
                return "account: integer expected";
            if (!$util.isString(message.sign))
                return "sign: string expected";
            return null;
        };

        /**
         * Creates a c2sBackToHall message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sBackToHall
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sBackToHall} c2sBackToHall
         */
        c2sBackToHall.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sBackToHall)
                return object;
            var message = new $root.awesomepackage.c2sBackToHall();
            if (object.account != null)
                message.account = object.account | 0;
            if (object.sign != null)
                message.sign = String(object.sign);
            return message;
        };

        /**
         * Creates a plain object from a c2sBackToHall message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sBackToHall
         * @static
         * @param {awesomepackage.c2sBackToHall} message c2sBackToHall
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sBackToHall.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.account = 0;
                object.sign = "";
            }
            if (message.account != null && message.hasOwnProperty("account"))
                object.account = message.account;
            if (message.sign != null && message.hasOwnProperty("sign"))
                object.sign = message.sign;
            return object;
        };

        /**
         * Converts this c2sBackToHall to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sBackToHall
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sBackToHall.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sBackToHall;
    })();

    awesomepackage.c2sRespawn = (function() {

        /**
         * Properties of a c2sRespawn.
         * @memberof awesomepackage
         * @interface Ic2sRespawn
         * @property {number} account c2sRespawn account
         * @property {string} sign c2sRespawn sign
         * @property {number} roomId c2sRespawn roomId
         */

        /**
         * Constructs a new c2sRespawn.
         * @memberof awesomepackage
         * @classdesc Represents a c2sRespawn.
         * @implements Ic2sRespawn
         * @constructor
         * @param {awesomepackage.Ic2sRespawn=} [properties] Properties to set
         */
        function c2sRespawn(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sRespawn account.
         * @member {number} account
         * @memberof awesomepackage.c2sRespawn
         * @instance
         */
        c2sRespawn.prototype.account = 0;

        /**
         * c2sRespawn sign.
         * @member {string} sign
         * @memberof awesomepackage.c2sRespawn
         * @instance
         */
        c2sRespawn.prototype.sign = "";

        /**
         * c2sRespawn roomId.
         * @member {number} roomId
         * @memberof awesomepackage.c2sRespawn
         * @instance
         */
        c2sRespawn.prototype.roomId = 0;

        /**
         * Creates a new c2sRespawn instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sRespawn
         * @static
         * @param {awesomepackage.Ic2sRespawn=} [properties] Properties to set
         * @returns {awesomepackage.c2sRespawn} c2sRespawn instance
         */
        c2sRespawn.create = function create(properties) {
            return new c2sRespawn(properties);
        };

        /**
         * Encodes the specified c2sRespawn message. Does not implicitly {@link awesomepackage.c2sRespawn.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sRespawn
         * @static
         * @param {awesomepackage.Ic2sRespawn} message c2sRespawn message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sRespawn.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.account);
            writer.uint32(/* id 2, wireType 2 =*/18).string(message.sign);
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.roomId);
            return writer;
        };

        /**
         * Encodes the specified c2sRespawn message, length delimited. Does not implicitly {@link awesomepackage.c2sRespawn.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sRespawn
         * @static
         * @param {awesomepackage.Ic2sRespawn} message c2sRespawn message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sRespawn.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sRespawn message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sRespawn
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sRespawn} c2sRespawn
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sRespawn.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sRespawn();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.account = reader.int32();
                    break;
                case 2:
                    message.sign = reader.string();
                    break;
                case 3:
                    message.roomId = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("account"))
                throw $util.ProtocolError("missing required 'account'", { instance: message });
            if (!message.hasOwnProperty("sign"))
                throw $util.ProtocolError("missing required 'sign'", { instance: message });
            if (!message.hasOwnProperty("roomId"))
                throw $util.ProtocolError("missing required 'roomId'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sRespawn message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sRespawn
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sRespawn} c2sRespawn
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sRespawn.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sRespawn message.
         * @function verify
         * @memberof awesomepackage.c2sRespawn
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sRespawn.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.account))
                return "account: integer expected";
            if (!$util.isString(message.sign))
                return "sign: string expected";
            if (!$util.isInteger(message.roomId))
                return "roomId: integer expected";
            return null;
        };

        /**
         * Creates a c2sRespawn message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.c2sRespawn
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.c2sRespawn} c2sRespawn
         */
        c2sRespawn.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.c2sRespawn)
                return object;
            var message = new $root.awesomepackage.c2sRespawn();
            if (object.account != null)
                message.account = object.account | 0;
            if (object.sign != null)
                message.sign = String(object.sign);
            if (object.roomId != null)
                message.roomId = object.roomId | 0;
            return message;
        };

        /**
         * Creates a plain object from a c2sRespawn message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.c2sRespawn
         * @static
         * @param {awesomepackage.c2sRespawn} message c2sRespawn
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        c2sRespawn.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.account = 0;
                object.sign = "";
                object.roomId = 0;
            }
            if (message.account != null && message.hasOwnProperty("account"))
                object.account = message.account;
            if (message.sign != null && message.hasOwnProperty("sign"))
                object.sign = message.sign;
            if (message.roomId != null && message.hasOwnProperty("roomId"))
                object.roomId = message.roomId;
            return object;
        };

        /**
         * Converts this c2sRespawn to JSON.
         * @function toJSON
         * @memberof awesomepackage.c2sRespawn
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        c2sRespawn.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return c2sRespawn;
    })();

    awesomepackage.s2cRespawn = (function() {

        /**
         * Properties of a s2cRespawn.
         * @memberof awesomepackage
         * @interface Is2cRespawn
         * @property {number|Long} startRoomTime s2cRespawn startRoomTime
         */

        /**
         * Constructs a new s2cRespawn.
         * @memberof awesomepackage
         * @classdesc Represents a s2cRespawn.
         * @implements Is2cRespawn
         * @constructor
         * @param {awesomepackage.Is2cRespawn=} [properties] Properties to set
         */
        function s2cRespawn(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cRespawn startRoomTime.
         * @member {number|Long} startRoomTime
         * @memberof awesomepackage.s2cRespawn
         * @instance
         */
        s2cRespawn.prototype.startRoomTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;

        /**
         * Creates a new s2cRespawn instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cRespawn
         * @static
         * @param {awesomepackage.Is2cRespawn=} [properties] Properties to set
         * @returns {awesomepackage.s2cRespawn} s2cRespawn instance
         */
        s2cRespawn.create = function create(properties) {
            return new s2cRespawn(properties);
        };

        /**
         * Encodes the specified s2cRespawn message. Does not implicitly {@link awesomepackage.s2cRespawn.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cRespawn
         * @static
         * @param {awesomepackage.Is2cRespawn} message s2cRespawn message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cRespawn.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int64(message.startRoomTime);
            return writer;
        };

        /**
         * Encodes the specified s2cRespawn message, length delimited. Does not implicitly {@link awesomepackage.s2cRespawn.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cRespawn
         * @static
         * @param {awesomepackage.Is2cRespawn} message s2cRespawn message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cRespawn.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cRespawn message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cRespawn
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cRespawn} s2cRespawn
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cRespawn.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cRespawn();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.startRoomTime = reader.int64();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("startRoomTime"))
                throw $util.ProtocolError("missing required 'startRoomTime'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cRespawn message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cRespawn
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cRespawn} s2cRespawn
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cRespawn.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cRespawn message.
         * @function verify
         * @memberof awesomepackage.s2cRespawn
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cRespawn.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.startRoomTime) && !(message.startRoomTime && $util.isInteger(message.startRoomTime.low) && $util.isInteger(message.startRoomTime.high)))
                return "startRoomTime: integer|Long expected";
            return null;
        };

        /**
         * Creates a s2cRespawn message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cRespawn
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cRespawn} s2cRespawn
         */
        s2cRespawn.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cRespawn)
                return object;
            var message = new $root.awesomepackage.s2cRespawn();
            if (object.startRoomTime != null)
                if ($util.Long)
                    (message.startRoomTime = $util.Long.fromValue(object.startRoomTime)).unsigned = false;
                else if (typeof object.startRoomTime === "string")
                    message.startRoomTime = parseInt(object.startRoomTime, 10);
                else if (typeof object.startRoomTime === "number")
                    message.startRoomTime = object.startRoomTime;
                else if (typeof object.startRoomTime === "object")
                    message.startRoomTime = new $util.LongBits(object.startRoomTime.low >>> 0, object.startRoomTime.high >>> 0).toNumber();
            return message;
        };

        /**
         * Creates a plain object from a s2cRespawn message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cRespawn
         * @static
         * @param {awesomepackage.s2cRespawn} message s2cRespawn
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cRespawn.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults)
                if ($util.Long) {
                    var long = new $util.Long(0, 0, false);
                    object.startRoomTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
                } else
                    object.startRoomTime = options.longs === String ? "0" : 0;
            if (message.startRoomTime != null && message.hasOwnProperty("startRoomTime"))
                if (typeof message.startRoomTime === "number")
                    object.startRoomTime = options.longs === String ? String(message.startRoomTime) : message.startRoomTime;
                else
                    object.startRoomTime = options.longs === String ? $util.Long.prototype.toString.call(message.startRoomTime) : options.longs === Number ? new $util.LongBits(message.startRoomTime.low >>> 0, message.startRoomTime.high >>> 0).toNumber() : message.startRoomTime;
            return object;
        };

        /**
         * Converts this s2cRespawn to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cRespawn
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cRespawn.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cRespawn;
    })();

    awesomepackage.s2cTopList = (function() {

        /**
         * Properties of a s2cTopList.
         * @memberof awesomepackage
         * @interface Is2cTopList
         * @property {Array.<awesomepackage.ItopUsrItem>|null} [tops] s2cTopList tops
         * @property {awesomepackage.ItopUsrItem} min s2cTopList min
         */

        /**
         * Constructs a new s2cTopList.
         * @memberof awesomepackage
         * @classdesc Represents a s2cTopList.
         * @implements Is2cTopList
         * @constructor
         * @param {awesomepackage.Is2cTopList=} [properties] Properties to set
         */
        function s2cTopList(properties) {
            this.tops = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cTopList tops.
         * @member {Array.<awesomepackage.ItopUsrItem>} tops
         * @memberof awesomepackage.s2cTopList
         * @instance
         */
        s2cTopList.prototype.tops = $util.emptyArray;

        /**
         * s2cTopList min.
         * @member {awesomepackage.ItopUsrItem} min
         * @memberof awesomepackage.s2cTopList
         * @instance
         */
        s2cTopList.prototype.min = null;

        /**
         * Creates a new s2cTopList instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cTopList
         * @static
         * @param {awesomepackage.Is2cTopList=} [properties] Properties to set
         * @returns {awesomepackage.s2cTopList} s2cTopList instance
         */
        s2cTopList.create = function create(properties) {
            return new s2cTopList(properties);
        };

        /**
         * Encodes the specified s2cTopList message. Does not implicitly {@link awesomepackage.s2cTopList.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cTopList
         * @static
         * @param {awesomepackage.Is2cTopList} message s2cTopList message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cTopList.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.tops != null && message.tops.length)
                for (var i = 0; i < message.tops.length; ++i)
                    $root.awesomepackage.topUsrItem.encode(message.tops[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
            $root.awesomepackage.topUsrItem.encode(message.min, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
            return writer;
        };

        /**
         * Encodes the specified s2cTopList message, length delimited. Does not implicitly {@link awesomepackage.s2cTopList.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cTopList
         * @static
         * @param {awesomepackage.Is2cTopList} message s2cTopList message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cTopList.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cTopList message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cTopList
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cTopList} s2cTopList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cTopList.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cTopList();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    if (!(message.tops && message.tops.length))
                        message.tops = [];
                    message.tops.push($root.awesomepackage.topUsrItem.decode(reader, reader.uint32()));
                    break;
                case 2:
                    message.min = $root.awesomepackage.topUsrItem.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("min"))
                throw $util.ProtocolError("missing required 'min'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cTopList message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cTopList
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cTopList} s2cTopList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cTopList.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cTopList message.
         * @function verify
         * @memberof awesomepackage.s2cTopList
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cTopList.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.tops != null && message.hasOwnProperty("tops")) {
                if (!Array.isArray(message.tops))
                    return "tops: array expected";
                for (var i = 0; i < message.tops.length; ++i) {
                    var error = $root.awesomepackage.topUsrItem.verify(message.tops[i]);
                    if (error)
                        return "tops." + error;
                }
            }
            {
                var error = $root.awesomepackage.topUsrItem.verify(message.min);
                if (error)
                    return "min." + error;
            }
            return null;
        };

        /**
         * Creates a s2cTopList message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.s2cTopList
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.s2cTopList} s2cTopList
         */
        s2cTopList.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.s2cTopList)
                return object;
            var message = new $root.awesomepackage.s2cTopList();
            if (object.tops) {
                if (!Array.isArray(object.tops))
                    throw TypeError(".awesomepackage.s2cTopList.tops: array expected");
                message.tops = [];
                for (var i = 0; i < object.tops.length; ++i) {
                    if (typeof object.tops[i] !== "object")
                        throw TypeError(".awesomepackage.s2cTopList.tops: object expected");
                    message.tops[i] = $root.awesomepackage.topUsrItem.fromObject(object.tops[i]);
                }
            }
            if (object.min != null) {
                if (typeof object.min !== "object")
                    throw TypeError(".awesomepackage.s2cTopList.min: object expected");
                message.min = $root.awesomepackage.topUsrItem.fromObject(object.min);
            }
            return message;
        };

        /**
         * Creates a plain object from a s2cTopList message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.s2cTopList
         * @static
         * @param {awesomepackage.s2cTopList} message s2cTopList
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        s2cTopList.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.arrays || options.defaults)
                object.tops = [];
            if (options.defaults)
                object.min = null;
            if (message.tops && message.tops.length) {
                object.tops = [];
                for (var j = 0; j < message.tops.length; ++j)
                    object.tops[j] = $root.awesomepackage.topUsrItem.toObject(message.tops[j], options);
            }
            if (message.min != null && message.hasOwnProperty("min"))
                object.min = $root.awesomepackage.topUsrItem.toObject(message.min, options);
            return object;
        };

        /**
         * Converts this s2cTopList to JSON.
         * @function toJSON
         * @memberof awesomepackage.s2cTopList
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        s2cTopList.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return s2cTopList;
    })();

    awesomepackage.topUsrItem = (function() {

        /**
         * Properties of a topUsrItem.
         * @memberof awesomepackage
         * @interface ItopUsrItem
         * @property {string} name topUsrItem name
         * @property {number} tongueLength topUsrItem tongueLength
         */

        /**
         * Constructs a new topUsrItem.
         * @memberof awesomepackage
         * @classdesc Represents a topUsrItem.
         * @implements ItopUsrItem
         * @constructor
         * @param {awesomepackage.ItopUsrItem=} [properties] Properties to set
         */
        function topUsrItem(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * topUsrItem name.
         * @member {string} name
         * @memberof awesomepackage.topUsrItem
         * @instance
         */
        topUsrItem.prototype.name = "";

        /**
         * topUsrItem tongueLength.
         * @member {number} tongueLength
         * @memberof awesomepackage.topUsrItem
         * @instance
         */
        topUsrItem.prototype.tongueLength = 0;

        /**
         * Creates a new topUsrItem instance using the specified properties.
         * @function create
         * @memberof awesomepackage.topUsrItem
         * @static
         * @param {awesomepackage.ItopUsrItem=} [properties] Properties to set
         * @returns {awesomepackage.topUsrItem} topUsrItem instance
         */
        topUsrItem.create = function create(properties) {
            return new topUsrItem(properties);
        };

        /**
         * Encodes the specified topUsrItem message. Does not implicitly {@link awesomepackage.topUsrItem.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.topUsrItem
         * @static
         * @param {awesomepackage.ItopUsrItem} message topUsrItem message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        topUsrItem.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.tongueLength);
            return writer;
        };

        /**
         * Encodes the specified topUsrItem message, length delimited. Does not implicitly {@link awesomepackage.topUsrItem.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.topUsrItem
         * @static
         * @param {awesomepackage.ItopUsrItem} message topUsrItem message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        topUsrItem.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a topUsrItem message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.topUsrItem
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.topUsrItem} topUsrItem
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        topUsrItem.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.topUsrItem();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.name = reader.string();
                    break;
                case 2:
                    message.tongueLength = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("name"))
                throw $util.ProtocolError("missing required 'name'", { instance: message });
            if (!message.hasOwnProperty("tongueLength"))
                throw $util.ProtocolError("missing required 'tongueLength'", { instance: message });
            return message;
        };

        /**
         * Decodes a topUsrItem message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.topUsrItem
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.topUsrItem} topUsrItem
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        topUsrItem.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a topUsrItem message.
         * @function verify
         * @memberof awesomepackage.topUsrItem
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        topUsrItem.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isString(message.name))
                return "name: string expected";
            if (!$util.isInteger(message.tongueLength))
                return "tongueLength: integer expected";
            return null;
        };

        /**
         * Creates a topUsrItem message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.topUsrItem
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.topUsrItem} topUsrItem
         */
        topUsrItem.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.topUsrItem)
                return object;
            var message = new $root.awesomepackage.topUsrItem();
            if (object.name != null)
                message.name = String(object.name);
            if (object.tongueLength != null)
                message.tongueLength = object.tongueLength | 0;
            return message;
        };

        /**
         * Creates a plain object from a topUsrItem message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.topUsrItem
         * @static
         * @param {awesomepackage.topUsrItem} message topUsrItem
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        topUsrItem.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.name = "";
                object.tongueLength = 0;
            }
            if (message.name != null && message.hasOwnProperty("name"))
                object.name = message.name;
            if (message.tongueLength != null && message.hasOwnProperty("tongueLength"))
                object.tongueLength = message.tongueLength;
            return object;
        };

        /**
         * Converts this topUsrItem to JSON.
         * @function toJSON
         * @memberof awesomepackage.topUsrItem
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        topUsrItem.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return topUsrItem;
    })();

    awesomepackage.roomPlayerInfo = (function() {

        /**
         * Properties of a roomPlayerInfo.
         * @memberof awesomepackage
         * @interface IroomPlayerInfo
         * @property {string} name roomPlayerInfo name
         * @property {number} userId roomPlayerInfo userId
         * @property {number} x roomPlayerInfo x
         * @property {number} y roomPlayerInfo y
         * @property {number} frogType roomPlayerInfo frogType
         * @property {number} level roomPlayerInfo level
         * @property {number} lineLength roomPlayerInfo lineLength
         * @property {number} roomId roomPlayerInfo roomId
         * @property {boolean} ishadLine roomPlayerInfo ishadLine
         * @property {awesomepackage.ImPropStates} propStates roomPlayerInfo propStates
         * @property {awesomepackage.ImDeath} Death roomPlayerInfo Death
         * @property {awesomepackage.ImNewHandProtect} NewHandProtect roomPlayerInfo NewHandProtect
         * @property {awesomepackage.ImDressup} Dressup roomPlayerInfo Dressup
         */

        /**
         * Constructs a new roomPlayerInfo.
         * @memberof awesomepackage
         * @classdesc Represents a roomPlayerInfo.
         * @implements IroomPlayerInfo
         * @constructor
         * @param {awesomepackage.IroomPlayerInfo=} [properties] Properties to set
         */
        function roomPlayerInfo(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * roomPlayerInfo name.
         * @member {string} name
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.name = "";

        /**
         * roomPlayerInfo userId.
         * @member {number} userId
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.userId = 0;

        /**
         * roomPlayerInfo x.
         * @member {number} x
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.x = 0;

        /**
         * roomPlayerInfo y.
         * @member {number} y
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.y = 0;

        /**
         * roomPlayerInfo frogType.
         * @member {number} frogType
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.frogType = 0;

        /**
         * roomPlayerInfo level.
         * @member {number} level
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.level = 0;

        /**
         * roomPlayerInfo lineLength.
         * @member {number} lineLength
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.lineLength = 0;

        /**
         * roomPlayerInfo roomId.
         * @member {number} roomId
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.roomId = 0;

        /**
         * roomPlayerInfo ishadLine.
         * @member {boolean} ishadLine
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.ishadLine = false;

        /**
         * roomPlayerInfo propStates.
         * @member {awesomepackage.ImPropStates} propStates
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.propStates = null;

        /**
         * roomPlayerInfo Death.
         * @member {awesomepackage.ImDeath} Death
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.Death = null;

        /**
         * roomPlayerInfo NewHandProtect.
         * @member {awesomepackage.ImNewHandProtect} NewHandProtect
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.NewHandProtect = null;

        /**
         * roomPlayerInfo Dressup.
         * @member {awesomepackage.ImDressup} Dressup
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         */
        roomPlayerInfo.prototype.Dressup = null;

        /**
         * Creates a new roomPlayerInfo instance using the specified properties.
         * @function create
         * @memberof awesomepackage.roomPlayerInfo
         * @static
         * @param {awesomepackage.IroomPlayerInfo=} [properties] Properties to set
         * @returns {awesomepackage.roomPlayerInfo} roomPlayerInfo instance
         */
        roomPlayerInfo.create = function create(properties) {
            return new roomPlayerInfo(properties);
        };

        /**
         * Encodes the specified roomPlayerInfo message. Does not implicitly {@link awesomepackage.roomPlayerInfo.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.roomPlayerInfo
         * @static
         * @param {awesomepackage.IroomPlayerInfo} message roomPlayerInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        roomPlayerInfo.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.userId);
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.x);
            writer.uint32(/* id 4, wireType 0 =*/32).int32(message.y);
            writer.uint32(/* id 5, wireType 0 =*/40).int32(message.frogType);
            writer.uint32(/* id 6, wireType 0 =*/48).int32(message.level);
            writer.uint32(/* id 7, wireType 0 =*/56).int32(message.lineLength);
            writer.uint32(/* id 8, wireType 0 =*/64).int32(message.roomId);
            writer.uint32(/* id 9, wireType 0 =*/72).bool(message.ishadLine);
            $root.awesomepackage.mPropStates.encode(message.propStates, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim();
            $root.awesomepackage.mDeath.encode(message.Death, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();
            $root.awesomepackage.mNewHandProtect.encode(message.NewHandProtect, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim();
            $root.awesomepackage.mDressup.encode(message.Dressup, writer.uint32(/* id 13, wireType 2 =*/106).fork()).ldelim();
            return writer;
        };

        /**
         * Encodes the specified roomPlayerInfo message, length delimited. Does not implicitly {@link awesomepackage.roomPlayerInfo.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.roomPlayerInfo
         * @static
         * @param {awesomepackage.IroomPlayerInfo} message roomPlayerInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        roomPlayerInfo.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a roomPlayerInfo message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.roomPlayerInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.roomPlayerInfo} roomPlayerInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        roomPlayerInfo.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.roomPlayerInfo();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.name = reader.string();
                    break;
                case 2:
                    message.userId = reader.int32();
                    break;
                case 3:
                    message.x = reader.int32();
                    break;
                case 4:
                    message.y = reader.int32();
                    break;
                case 5:
                    message.frogType = reader.int32();
                    break;
                case 6:
                    message.level = reader.int32();
                    break;
                case 7:
                    message.lineLength = reader.int32();
                    break;
                case 8:
                    message.roomId = reader.int32();
                    break;
                case 9:
                    message.ishadLine = reader.bool();
                    break;
                case 10:
                    message.propStates = $root.awesomepackage.mPropStates.decode(reader, reader.uint32());
                    break;
                case 11:
                    message.Death = $root.awesomepackage.mDeath.decode(reader, reader.uint32());
                    break;
                case 12:
                    message.NewHandProtect = $root.awesomepackage.mNewHandProtect.decode(reader, reader.uint32());
                    break;
                case 13:
                    message.Dressup = $root.awesomepackage.mDressup.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("name"))
                throw $util.ProtocolError("missing required 'name'", { instance: message });
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            if (!message.hasOwnProperty("x"))
                throw $util.ProtocolError("missing required 'x'", { instance: message });
            if (!message.hasOwnProperty("y"))
                throw $util.ProtocolError("missing required 'y'", { instance: message });
            if (!message.hasOwnProperty("frogType"))
                throw $util.ProtocolError("missing required 'frogType'", { instance: message });
            if (!message.hasOwnProperty("level"))
                throw $util.ProtocolError("missing required 'level'", { instance: message });
            if (!message.hasOwnProperty("lineLength"))
                throw $util.ProtocolError("missing required 'lineLength'", { instance: message });
            if (!message.hasOwnProperty("roomId"))
                throw $util.ProtocolError("missing required 'roomId'", { instance: message });
            if (!message.hasOwnProperty("ishadLine"))
                throw $util.ProtocolError("missing required 'ishadLine'", { instance: message });
            if (!message.hasOwnProperty("propStates"))
                throw $util.ProtocolError("missing required 'propStates'", { instance: message });
            if (!message.hasOwnProperty("Death"))
                throw $util.ProtocolError("missing required 'Death'", { instance: message });
            if (!message.hasOwnProperty("NewHandProtect"))
                throw $util.ProtocolError("missing required 'NewHandProtect'", { instance: message });
            if (!message.hasOwnProperty("Dressup"))
                throw $util.ProtocolError("missing required 'Dressup'", { instance: message });
            return message;
        };

        /**
         * Decodes a roomPlayerInfo message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.roomPlayerInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.roomPlayerInfo} roomPlayerInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        roomPlayerInfo.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a roomPlayerInfo message.
         * @function verify
         * @memberof awesomepackage.roomPlayerInfo
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        roomPlayerInfo.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isString(message.name))
                return "name: string expected";
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            if (!$util.isInteger(message.x))
                return "x: integer expected";
            if (!$util.isInteger(message.y))
                return "y: integer expected";
            if (!$util.isInteger(message.frogType))
                return "frogType: integer expected";
            if (!$util.isInteger(message.level))
                return "level: integer expected";
            if (!$util.isInteger(message.lineLength))
                return "lineLength: integer expected";
            if (!$util.isInteger(message.roomId))
                return "roomId: integer expected";
            if (typeof message.ishadLine !== "boolean")
                return "ishadLine: boolean expected";
            {
                var error = $root.awesomepackage.mPropStates.verify(message.propStates);
                if (error)
                    return "propStates." + error;
            }
            {
                var error = $root.awesomepackage.mDeath.verify(message.Death);
                if (error)
                    return "Death." + error;
            }
            {
                var error = $root.awesomepackage.mNewHandProtect.verify(message.NewHandProtect);
                if (error)
                    return "NewHandProtect." + error;
            }
            {
                var error = $root.awesomepackage.mDressup.verify(message.Dressup);
                if (error)
                    return "Dressup." + error;
            }
            return null;
        };

        /**
         * Creates a roomPlayerInfo message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.roomPlayerInfo
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.roomPlayerInfo} roomPlayerInfo
         */
        roomPlayerInfo.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.roomPlayerInfo)
                return object;
            var message = new $root.awesomepackage.roomPlayerInfo();
            if (object.name != null)
                message.name = String(object.name);
            if (object.userId != null)
                message.userId = object.userId | 0;
            if (object.x != null)
                message.x = object.x | 0;
            if (object.y != null)
                message.y = object.y | 0;
            if (object.frogType != null)
                message.frogType = object.frogType | 0;
            if (object.level != null)
                message.level = object.level | 0;
            if (object.lineLength != null)
                message.lineLength = object.lineLength | 0;
            if (object.roomId != null)
                message.roomId = object.roomId | 0;
            if (object.ishadLine != null)
                message.ishadLine = Boolean(object.ishadLine);
            if (object.propStates != null) {
                if (typeof object.propStates !== "object")
                    throw TypeError(".awesomepackage.roomPlayerInfo.propStates: object expected");
                message.propStates = $root.awesomepackage.mPropStates.fromObject(object.propStates);
            }
            if (object.Death != null) {
                if (typeof object.Death !== "object")
                    throw TypeError(".awesomepackage.roomPlayerInfo.Death: object expected");
                message.Death = $root.awesomepackage.mDeath.fromObject(object.Death);
            }
            if (object.NewHandProtect != null) {
                if (typeof object.NewHandProtect !== "object")
                    throw TypeError(".awesomepackage.roomPlayerInfo.NewHandProtect: object expected");
                message.NewHandProtect = $root.awesomepackage.mNewHandProtect.fromObject(object.NewHandProtect);
            }
            if (object.Dressup != null) {
                if (typeof object.Dressup !== "object")
                    throw TypeError(".awesomepackage.roomPlayerInfo.Dressup: object expected");
                message.Dressup = $root.awesomepackage.mDressup.fromObject(object.Dressup);
            }
            return message;
        };

        /**
         * Creates a plain object from a roomPlayerInfo message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.roomPlayerInfo
         * @static
         * @param {awesomepackage.roomPlayerInfo} message roomPlayerInfo
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        roomPlayerInfo.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.name = "";
                object.userId = 0;
                object.x = 0;
                object.y = 0;
                object.frogType = 0;
                object.level = 0;
                object.lineLength = 0;
                object.roomId = 0;
                object.ishadLine = false;
                object.propStates = null;
                object.Death = null;
                object.NewHandProtect = null;
                object.Dressup = null;
            }
            if (message.name != null && message.hasOwnProperty("name"))
                object.name = message.name;
            if (message.userId != null && message.hasOwnProperty("userId"))
                object.userId = message.userId;
            if (message.x != null && message.hasOwnProperty("x"))
                object.x = message.x;
            if (message.y != null && message.hasOwnProperty("y"))
                object.y = message.y;
            if (message.frogType != null && message.hasOwnProperty("frogType"))
                object.frogType = message.frogType;
            if (message.level != null && message.hasOwnProperty("level"))
                object.level = message.level;
            if (message.lineLength != null && message.hasOwnProperty("lineLength"))
                object.lineLength = message.lineLength;
            if (message.roomId != null && message.hasOwnProperty("roomId"))
                object.roomId = message.roomId;
            if (message.ishadLine != null && message.hasOwnProperty("ishadLine"))
                object.ishadLine = message.ishadLine;
            if (message.propStates != null && message.hasOwnProperty("propStates"))
                object.propStates = $root.awesomepackage.mPropStates.toObject(message.propStates, options);
            if (message.Death != null && message.hasOwnProperty("Death"))
                object.Death = $root.awesomepackage.mDeath.toObject(message.Death, options);
            if (message.NewHandProtect != null && message.hasOwnProperty("NewHandProtect"))
                object.NewHandProtect = $root.awesomepackage.mNewHandProtect.toObject(message.NewHandProtect, options);
            if (message.Dressup != null && message.hasOwnProperty("Dressup"))
                object.Dressup = $root.awesomepackage.mDressup.toObject(message.Dressup, options);
            return object;
        };

        /**
         * Converts this roomPlayerInfo to JSON.
         * @function toJSON
         * @memberof awesomepackage.roomPlayerInfo
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        roomPlayerInfo.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return roomPlayerInfo;
    })();

    awesomepackage.mPropStates = (function() {

        /**
         * Properties of a mPropStates.
         * @memberof awesomepackage
         * @interface ImPropStates
         * @property {number} getPropType mPropStates getPropType
         * @property {number|Long} PropStartTime mPropStates PropStartTime
         */

        /**
         * Constructs a new mPropStates.
         * @memberof awesomepackage
         * @classdesc Represents a mPropStates.
         * @implements ImPropStates
         * @constructor
         * @param {awesomepackage.ImPropStates=} [properties] Properties to set
         */
        function mPropStates(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * mPropStates getPropType.
         * @member {number} getPropType
         * @memberof awesomepackage.mPropStates
         * @instance
         */
        mPropStates.prototype.getPropType = 0;

        /**
         * mPropStates PropStartTime.
         * @member {number|Long} PropStartTime
         * @memberof awesomepackage.mPropStates
         * @instance
         */
        mPropStates.prototype.PropStartTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;

        /**
         * Creates a new mPropStates instance using the specified properties.
         * @function create
         * @memberof awesomepackage.mPropStates
         * @static
         * @param {awesomepackage.ImPropStates=} [properties] Properties to set
         * @returns {awesomepackage.mPropStates} mPropStates instance
         */
        mPropStates.create = function create(properties) {
            return new mPropStates(properties);
        };

        /**
         * Encodes the specified mPropStates message. Does not implicitly {@link awesomepackage.mPropStates.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.mPropStates
         * @static
         * @param {awesomepackage.ImPropStates} message mPropStates message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mPropStates.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.getPropType);
            writer.uint32(/* id 2, wireType 0 =*/16).int64(message.PropStartTime);
            return writer;
        };

        /**
         * Encodes the specified mPropStates message, length delimited. Does not implicitly {@link awesomepackage.mPropStates.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.mPropStates
         * @static
         * @param {awesomepackage.ImPropStates} message mPropStates message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mPropStates.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a mPropStates message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.mPropStates
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.mPropStates} mPropStates
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mPropStates.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.mPropStates();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.getPropType = reader.int32();
                    break;
                case 2:
                    message.PropStartTime = reader.int64();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("getPropType"))
                throw $util.ProtocolError("missing required 'getPropType'", { instance: message });
            if (!message.hasOwnProperty("PropStartTime"))
                throw $util.ProtocolError("missing required 'PropStartTime'", { instance: message });
            return message;
        };

        /**
         * Decodes a mPropStates message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.mPropStates
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.mPropStates} mPropStates
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mPropStates.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a mPropStates message.
         * @function verify
         * @memberof awesomepackage.mPropStates
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        mPropStates.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.getPropType))
                return "getPropType: integer expected";
            if (!$util.isInteger(message.PropStartTime) && !(message.PropStartTime && $util.isInteger(message.PropStartTime.low) && $util.isInteger(message.PropStartTime.high)))
                return "PropStartTime: integer|Long expected";
            return null;
        };

        /**
         * Creates a mPropStates message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.mPropStates
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.mPropStates} mPropStates
         */
        mPropStates.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.mPropStates)
                return object;
            var message = new $root.awesomepackage.mPropStates();
            if (object.getPropType != null)
                message.getPropType = object.getPropType | 0;
            if (object.PropStartTime != null)
                if ($util.Long)
                    (message.PropStartTime = $util.Long.fromValue(object.PropStartTime)).unsigned = false;
                else if (typeof object.PropStartTime === "string")
                    message.PropStartTime = parseInt(object.PropStartTime, 10);
                else if (typeof object.PropStartTime === "number")
                    message.PropStartTime = object.PropStartTime;
                else if (typeof object.PropStartTime === "object")
                    message.PropStartTime = new $util.LongBits(object.PropStartTime.low >>> 0, object.PropStartTime.high >>> 0).toNumber();
            return message;
        };

        /**
         * Creates a plain object from a mPropStates message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.mPropStates
         * @static
         * @param {awesomepackage.mPropStates} message mPropStates
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        mPropStates.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.getPropType = 0;
                if ($util.Long) {
                    var long = new $util.Long(0, 0, false);
                    object.PropStartTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
                } else
                    object.PropStartTime = options.longs === String ? "0" : 0;
            }
            if (message.getPropType != null && message.hasOwnProperty("getPropType"))
                object.getPropType = message.getPropType;
            if (message.PropStartTime != null && message.hasOwnProperty("PropStartTime"))
                if (typeof message.PropStartTime === "number")
                    object.PropStartTime = options.longs === String ? String(message.PropStartTime) : message.PropStartTime;
                else
                    object.PropStartTime = options.longs === String ? $util.Long.prototype.toString.call(message.PropStartTime) : options.longs === Number ? new $util.LongBits(message.PropStartTime.low >>> 0, message.PropStartTime.high >>> 0).toNumber() : message.PropStartTime;
            return object;
        };

        /**
         * Converts this mPropStates to JSON.
         * @function toJSON
         * @memberof awesomepackage.mPropStates
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        mPropStates.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return mPropStates;
    })();

    awesomepackage.mDeath = (function() {

        /**
         * Properties of a mDeath.
         * @memberof awesomepackage
         * @interface ImDeath
         * @property {boolean} isDeath mDeath isDeath
         * @property {number|Long} deadStartTime mDeath deadStartTime
         */

        /**
         * Constructs a new mDeath.
         * @memberof awesomepackage
         * @classdesc Represents a mDeath.
         * @implements ImDeath
         * @constructor
         * @param {awesomepackage.ImDeath=} [properties] Properties to set
         */
        function mDeath(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * mDeath isDeath.
         * @member {boolean} isDeath
         * @memberof awesomepackage.mDeath
         * @instance
         */
        mDeath.prototype.isDeath = false;

        /**
         * mDeath deadStartTime.
         * @member {number|Long} deadStartTime
         * @memberof awesomepackage.mDeath
         * @instance
         */
        mDeath.prototype.deadStartTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;

        /**
         * Creates a new mDeath instance using the specified properties.
         * @function create
         * @memberof awesomepackage.mDeath
         * @static
         * @param {awesomepackage.ImDeath=} [properties] Properties to set
         * @returns {awesomepackage.mDeath} mDeath instance
         */
        mDeath.create = function create(properties) {
            return new mDeath(properties);
        };

        /**
         * Encodes the specified mDeath message. Does not implicitly {@link awesomepackage.mDeath.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.mDeath
         * @static
         * @param {awesomepackage.ImDeath} message mDeath message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mDeath.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isDeath);
            writer.uint32(/* id 2, wireType 0 =*/16).int64(message.deadStartTime);
            return writer;
        };

        /**
         * Encodes the specified mDeath message, length delimited. Does not implicitly {@link awesomepackage.mDeath.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.mDeath
         * @static
         * @param {awesomepackage.ImDeath} message mDeath message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mDeath.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a mDeath message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.mDeath
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.mDeath} mDeath
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mDeath.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.mDeath();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.isDeath = reader.bool();
                    break;
                case 2:
                    message.deadStartTime = reader.int64();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("isDeath"))
                throw $util.ProtocolError("missing required 'isDeath'", { instance: message });
            if (!message.hasOwnProperty("deadStartTime"))
                throw $util.ProtocolError("missing required 'deadStartTime'", { instance: message });
            return message;
        };

        /**
         * Decodes a mDeath message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.mDeath
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.mDeath} mDeath
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mDeath.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a mDeath message.
         * @function verify
         * @memberof awesomepackage.mDeath
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        mDeath.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (typeof message.isDeath !== "boolean")
                return "isDeath: boolean expected";
            if (!$util.isInteger(message.deadStartTime) && !(message.deadStartTime && $util.isInteger(message.deadStartTime.low) && $util.isInteger(message.deadStartTime.high)))
                return "deadStartTime: integer|Long expected";
            return null;
        };

        /**
         * Creates a mDeath message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.mDeath
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.mDeath} mDeath
         */
        mDeath.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.mDeath)
                return object;
            var message = new $root.awesomepackage.mDeath();
            if (object.isDeath != null)
                message.isDeath = Boolean(object.isDeath);
            if (object.deadStartTime != null)
                if ($util.Long)
                    (message.deadStartTime = $util.Long.fromValue(object.deadStartTime)).unsigned = false;
                else if (typeof object.deadStartTime === "string")
                    message.deadStartTime = parseInt(object.deadStartTime, 10);
                else if (typeof object.deadStartTime === "number")
                    message.deadStartTime = object.deadStartTime;
                else if (typeof object.deadStartTime === "object")
                    message.deadStartTime = new $util.LongBits(object.deadStartTime.low >>> 0, object.deadStartTime.high >>> 0).toNumber();
            return message;
        };

        /**
         * Creates a plain object from a mDeath message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.mDeath
         * @static
         * @param {awesomepackage.mDeath} message mDeath
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        mDeath.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.isDeath = false;
                if ($util.Long) {
                    var long = new $util.Long(0, 0, false);
                    object.deadStartTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
                } else
                    object.deadStartTime = options.longs === String ? "0" : 0;
            }
            if (message.isDeath != null && message.hasOwnProperty("isDeath"))
                object.isDeath = message.isDeath;
            if (message.deadStartTime != null && message.hasOwnProperty("deadStartTime"))
                if (typeof message.deadStartTime === "number")
                    object.deadStartTime = options.longs === String ? String(message.deadStartTime) : message.deadStartTime;
                else
                    object.deadStartTime = options.longs === String ? $util.Long.prototype.toString.call(message.deadStartTime) : options.longs === Number ? new $util.LongBits(message.deadStartTime.low >>> 0, message.deadStartTime.high >>> 0).toNumber() : message.deadStartTime;
            return object;
        };

        /**
         * Converts this mDeath to JSON.
         * @function toJSON
         * @memberof awesomepackage.mDeath
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        mDeath.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return mDeath;
    })();

    awesomepackage.mNewHandProtect = (function() {

        /**
         * Properties of a mNewHandProtect.
         * @memberof awesomepackage
         * @interface ImNewHandProtect
         * @property {boolean} isProtect mNewHandProtect isProtect
         * @property {number|Long} ProtectStartTime mNewHandProtect ProtectStartTime
         */

        /**
         * Constructs a new mNewHandProtect.
         * @memberof awesomepackage
         * @classdesc Represents a mNewHandProtect.
         * @implements ImNewHandProtect
         * @constructor
         * @param {awesomepackage.ImNewHandProtect=} [properties] Properties to set
         */
        function mNewHandProtect(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * mNewHandProtect isProtect.
         * @member {boolean} isProtect
         * @memberof awesomepackage.mNewHandProtect
         * @instance
         */
        mNewHandProtect.prototype.isProtect = false;

        /**
         * mNewHandProtect ProtectStartTime.
         * @member {number|Long} ProtectStartTime
         * @memberof awesomepackage.mNewHandProtect
         * @instance
         */
        mNewHandProtect.prototype.ProtectStartTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;

        /**
         * Creates a new mNewHandProtect instance using the specified properties.
         * @function create
         * @memberof awesomepackage.mNewHandProtect
         * @static
         * @param {awesomepackage.ImNewHandProtect=} [properties] Properties to set
         * @returns {awesomepackage.mNewHandProtect} mNewHandProtect instance
         */
        mNewHandProtect.create = function create(properties) {
            return new mNewHandProtect(properties);
        };

        /**
         * Encodes the specified mNewHandProtect message. Does not implicitly {@link awesomepackage.mNewHandProtect.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.mNewHandProtect
         * @static
         * @param {awesomepackage.ImNewHandProtect} message mNewHandProtect message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mNewHandProtect.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isProtect);
            writer.uint32(/* id 2, wireType 0 =*/16).int64(message.ProtectStartTime);
            return writer;
        };

        /**
         * Encodes the specified mNewHandProtect message, length delimited. Does not implicitly {@link awesomepackage.mNewHandProtect.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.mNewHandProtect
         * @static
         * @param {awesomepackage.ImNewHandProtect} message mNewHandProtect message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mNewHandProtect.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a mNewHandProtect message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.mNewHandProtect
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.mNewHandProtect} mNewHandProtect
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mNewHandProtect.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.mNewHandProtect();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.isProtect = reader.bool();
                    break;
                case 2:
                    message.ProtectStartTime = reader.int64();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("isProtect"))
                throw $util.ProtocolError("missing required 'isProtect'", { instance: message });
            if (!message.hasOwnProperty("ProtectStartTime"))
                throw $util.ProtocolError("missing required 'ProtectStartTime'", { instance: message });
            return message;
        };

        /**
         * Decodes a mNewHandProtect message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.mNewHandProtect
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.mNewHandProtect} mNewHandProtect
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mNewHandProtect.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a mNewHandProtect message.
         * @function verify
         * @memberof awesomepackage.mNewHandProtect
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        mNewHandProtect.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (typeof message.isProtect !== "boolean")
                return "isProtect: boolean expected";
            if (!$util.isInteger(message.ProtectStartTime) && !(message.ProtectStartTime && $util.isInteger(message.ProtectStartTime.low) && $util.isInteger(message.ProtectStartTime.high)))
                return "ProtectStartTime: integer|Long expected";
            return null;
        };

        /**
         * Creates a mNewHandProtect message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.mNewHandProtect
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.mNewHandProtect} mNewHandProtect
         */
        mNewHandProtect.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.mNewHandProtect)
                return object;
            var message = new $root.awesomepackage.mNewHandProtect();
            if (object.isProtect != null)
                message.isProtect = Boolean(object.isProtect);
            if (object.ProtectStartTime != null)
                if ($util.Long)
                    (message.ProtectStartTime = $util.Long.fromValue(object.ProtectStartTime)).unsigned = false;
                else if (typeof object.ProtectStartTime === "string")
                    message.ProtectStartTime = parseInt(object.ProtectStartTime, 10);
                else if (typeof object.ProtectStartTime === "number")
                    message.ProtectStartTime = object.ProtectStartTime;
                else if (typeof object.ProtectStartTime === "object")
                    message.ProtectStartTime = new $util.LongBits(object.ProtectStartTime.low >>> 0, object.ProtectStartTime.high >>> 0).toNumber();
            return message;
        };

        /**
         * Creates a plain object from a mNewHandProtect message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.mNewHandProtect
         * @static
         * @param {awesomepackage.mNewHandProtect} message mNewHandProtect
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        mNewHandProtect.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.isProtect = false;
                if ($util.Long) {
                    var long = new $util.Long(0, 0, false);
                    object.ProtectStartTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
                } else
                    object.ProtectStartTime = options.longs === String ? "0" : 0;
            }
            if (message.isProtect != null && message.hasOwnProperty("isProtect"))
                object.isProtect = message.isProtect;
            if (message.ProtectStartTime != null && message.hasOwnProperty("ProtectStartTime"))
                if (typeof message.ProtectStartTime === "number")
                    object.ProtectStartTime = options.longs === String ? String(message.ProtectStartTime) : message.ProtectStartTime;
                else
                    object.ProtectStartTime = options.longs === String ? $util.Long.prototype.toString.call(message.ProtectStartTime) : options.longs === Number ? new $util.LongBits(message.ProtectStartTime.low >>> 0, message.ProtectStartTime.high >>> 0).toNumber() : message.ProtectStartTime;
            return object;
        };

        /**
         * Converts this mNewHandProtect to JSON.
         * @function toJSON
         * @memberof awesomepackage.mNewHandProtect
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        mNewHandProtect.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return mNewHandProtect;
    })();

    awesomepackage.mDressup = (function() {

        /**
         * Properties of a mDressup.
         * @memberof awesomepackage
         * @interface ImDressup
         * @property {number} decorateId mDressup decorateId
         * @property {number} trailingId mDressup trailingId
         */

        /**
         * Constructs a new mDressup.
         * @memberof awesomepackage
         * @classdesc Represents a mDressup.
         * @implements ImDressup
         * @constructor
         * @param {awesomepackage.ImDressup=} [properties] Properties to set
         */
        function mDressup(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * mDressup decorateId.
         * @member {number} decorateId
         * @memberof awesomepackage.mDressup
         * @instance
         */
        mDressup.prototype.decorateId = 0;

        /**
         * mDressup trailingId.
         * @member {number} trailingId
         * @memberof awesomepackage.mDressup
         * @instance
         */
        mDressup.prototype.trailingId = 0;

        /**
         * Creates a new mDressup instance using the specified properties.
         * @function create
         * @memberof awesomepackage.mDressup
         * @static
         * @param {awesomepackage.ImDressup=} [properties] Properties to set
         * @returns {awesomepackage.mDressup} mDressup instance
         */
        mDressup.create = function create(properties) {
            return new mDressup(properties);
        };

        /**
         * Encodes the specified mDressup message. Does not implicitly {@link awesomepackage.mDressup.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.mDressup
         * @static
         * @param {awesomepackage.ImDressup} message mDressup message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mDressup.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.decorateId);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.trailingId);
            return writer;
        };

        /**
         * Encodes the specified mDressup message, length delimited. Does not implicitly {@link awesomepackage.mDressup.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.mDressup
         * @static
         * @param {awesomepackage.ImDressup} message mDressup message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mDressup.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a mDressup message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.mDressup
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.mDressup} mDressup
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mDressup.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.mDressup();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.decorateId = reader.int32();
                    break;
                case 2:
                    message.trailingId = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("decorateId"))
                throw $util.ProtocolError("missing required 'decorateId'", { instance: message });
            if (!message.hasOwnProperty("trailingId"))
                throw $util.ProtocolError("missing required 'trailingId'", { instance: message });
            return message;
        };

        /**
         * Decodes a mDressup message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.mDressup
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.mDressup} mDressup
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mDressup.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a mDressup message.
         * @function verify
         * @memberof awesomepackage.mDressup
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        mDressup.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.decorateId))
                return "decorateId: integer expected";
            if (!$util.isInteger(message.trailingId))
                return "trailingId: integer expected";
            return null;
        };

        /**
         * Creates a mDressup message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.mDressup
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.mDressup} mDressup
         */
        mDressup.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.mDressup)
                return object;
            var message = new $root.awesomepackage.mDressup();
            if (object.decorateId != null)
                message.decorateId = object.decorateId | 0;
            if (object.trailingId != null)
                message.trailingId = object.trailingId | 0;
            return message;
        };

        /**
         * Creates a plain object from a mDressup message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.mDressup
         * @static
         * @param {awesomepackage.mDressup} message mDressup
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        mDressup.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.decorateId = 0;
                object.trailingId = 0;
            }
            if (message.decorateId != null && message.hasOwnProperty("decorateId"))
                object.decorateId = message.decorateId;
            if (message.trailingId != null && message.hasOwnProperty("trailingId"))
                object.trailingId = message.trailingId;
            return object;
        };

        /**
         * Converts this mDressup to JSON.
         * @function toJSON
         * @memberof awesomepackage.mDressup
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        mDressup.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return mDressup;
    })();

    awesomepackage.mPoint = (function() {

        /**
         * Properties of a mPoint.
         * @memberof awesomepackage
         * @interface ImPoint
         * @property {number} x mPoint x
         * @property {number} y mPoint y
         */

        /**
         * Constructs a new mPoint.
         * @memberof awesomepackage
         * @classdesc Represents a mPoint.
         * @implements ImPoint
         * @constructor
         * @param {awesomepackage.ImPoint=} [properties] Properties to set
         */
        function mPoint(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * mPoint x.
         * @member {number} x
         * @memberof awesomepackage.mPoint
         * @instance
         */
        mPoint.prototype.x = 0;

        /**
         * mPoint y.
         * @member {number} y
         * @memberof awesomepackage.mPoint
         * @instance
         */
        mPoint.prototype.y = 0;

        /**
         * Creates a new mPoint instance using the specified properties.
         * @function create
         * @memberof awesomepackage.mPoint
         * @static
         * @param {awesomepackage.ImPoint=} [properties] Properties to set
         * @returns {awesomepackage.mPoint} mPoint instance
         */
        mPoint.create = function create(properties) {
            return new mPoint(properties);
        };

        /**
         * Encodes the specified mPoint message. Does not implicitly {@link awesomepackage.mPoint.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.mPoint
         * @static
         * @param {awesomepackage.ImPoint} message mPoint message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mPoint.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.x);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.y);
            return writer;
        };

        /**
         * Encodes the specified mPoint message, length delimited. Does not implicitly {@link awesomepackage.mPoint.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.mPoint
         * @static
         * @param {awesomepackage.ImPoint} message mPoint message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mPoint.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a mPoint message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.mPoint
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.mPoint} mPoint
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mPoint.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.mPoint();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.x = reader.int32();
                    break;
                case 2:
                    message.y = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("x"))
                throw $util.ProtocolError("missing required 'x'", { instance: message });
            if (!message.hasOwnProperty("y"))
                throw $util.ProtocolError("missing required 'y'", { instance: message });
            return message;
        };

        /**
         * Decodes a mPoint message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.mPoint
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.mPoint} mPoint
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mPoint.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a mPoint message.
         * @function verify
         * @memberof awesomepackage.mPoint
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        mPoint.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.x))
                return "x: integer expected";
            if (!$util.isInteger(message.y))
                return "y: integer expected";
            return null;
        };

        /**
         * Creates a mPoint message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.mPoint
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.mPoint} mPoint
         */
        mPoint.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.mPoint)
                return object;
            var message = new $root.awesomepackage.mPoint();
            if (object.x != null)
                message.x = object.x | 0;
            if (object.y != null)
                message.y = object.y | 0;
            return message;
        };

        /**
         * Creates a plain object from a mPoint message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.mPoint
         * @static
         * @param {awesomepackage.mPoint} message mPoint
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        mPoint.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.x = 0;
                object.y = 0;
            }
            if (message.x != null && message.hasOwnProperty("x"))
                object.x = message.x;
            if (message.y != null && message.hasOwnProperty("y"))
                object.y = message.y;
            return object;
        };

        /**
         * Converts this mPoint to JSON.
         * @function toJSON
         * @memberof awesomepackage.mPoint
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        mPoint.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return mPoint;
    })();

    awesomepackage.mLine = (function() {

        /**
         * Properties of a mLine.
         * @memberof awesomepackage
         * @interface ImLine
         * @property {number} uOI mLine uOI
         * @property {number} uTI mLine uTI
         * @property {awesomepackage.ImPoint} uO mLine uO
         * @property {awesomepackage.ImPoint} uT mLine uT
         * @property {number} t mLine t
         * @property {number} i mLine i
         */

        /**
         * Constructs a new mLine.
         * @memberof awesomepackage
         * @classdesc Represents a mLine.
         * @implements ImLine
         * @constructor
         * @param {awesomepackage.ImLine=} [properties] Properties to set
         */
        function mLine(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * mLine uOI.
         * @member {number} uOI
         * @memberof awesomepackage.mLine
         * @instance
         */
        mLine.prototype.uOI = 0;

        /**
         * mLine uTI.
         * @member {number} uTI
         * @memberof awesomepackage.mLine
         * @instance
         */
        mLine.prototype.uTI = 0;

        /**
         * mLine uO.
         * @member {awesomepackage.ImPoint} uO
         * @memberof awesomepackage.mLine
         * @instance
         */
        mLine.prototype.uO = null;

        /**
         * mLine uT.
         * @member {awesomepackage.ImPoint} uT
         * @memberof awesomepackage.mLine
         * @instance
         */
        mLine.prototype.uT = null;

        /**
         * mLine t.
         * @member {number} t
         * @memberof awesomepackage.mLine
         * @instance
         */
        mLine.prototype.t = 0;

        /**
         * mLine i.
         * @member {number} i
         * @memberof awesomepackage.mLine
         * @instance
         */
        mLine.prototype.i = 0;

        /**
         * Creates a new mLine instance using the specified properties.
         * @function create
         * @memberof awesomepackage.mLine
         * @static
         * @param {awesomepackage.ImLine=} [properties] Properties to set
         * @returns {awesomepackage.mLine} mLine instance
         */
        mLine.create = function create(properties) {
            return new mLine(properties);
        };

        /**
         * Encodes the specified mLine message. Does not implicitly {@link awesomepackage.mLine.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.mLine
         * @static
         * @param {awesomepackage.ImLine} message mLine message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mLine.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.uOI);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.uTI);
            $root.awesomepackage.mPoint.encode(message.uO, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
            $root.awesomepackage.mPoint.encode(message.uT, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
            writer.uint32(/* id 5, wireType 0 =*/40).int32(message.t);
            writer.uint32(/* id 6, wireType 0 =*/48).int32(message.i);
            return writer;
        };

        /**
         * Encodes the specified mLine message, length delimited. Does not implicitly {@link awesomepackage.mLine.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.mLine
         * @static
         * @param {awesomepackage.ImLine} message mLine message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mLine.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a mLine message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.mLine
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.mLine} mLine
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mLine.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.mLine();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.uOI = reader.int32();
                    break;
                case 2:
                    message.uTI = reader.int32();
                    break;
                case 3:
                    message.uO = $root.awesomepackage.mPoint.decode(reader, reader.uint32());
                    break;
                case 4:
                    message.uT = $root.awesomepackage.mPoint.decode(reader, reader.uint32());
                    break;
                case 5:
                    message.t = reader.int32();
                    break;
                case 6:
                    message.i = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("uOI"))
                throw $util.ProtocolError("missing required 'uOI'", { instance: message });
            if (!message.hasOwnProperty("uTI"))
                throw $util.ProtocolError("missing required 'uTI'", { instance: message });
            if (!message.hasOwnProperty("uO"))
                throw $util.ProtocolError("missing required 'uO'", { instance: message });
            if (!message.hasOwnProperty("uT"))
                throw $util.ProtocolError("missing required 'uT'", { instance: message });
            if (!message.hasOwnProperty("t"))
                throw $util.ProtocolError("missing required 't'", { instance: message });
            if (!message.hasOwnProperty("i"))
                throw $util.ProtocolError("missing required 'i'", { instance: message });
            return message;
        };

        /**
         * Decodes a mLine message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.mLine
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.mLine} mLine
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mLine.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a mLine message.
         * @function verify
         * @memberof awesomepackage.mLine
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        mLine.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.uOI))
                return "uOI: integer expected";
            if (!$util.isInteger(message.uTI))
                return "uTI: integer expected";
            {
                var error = $root.awesomepackage.mPoint.verify(message.uO);
                if (error)
                    return "uO." + error;
            }
            {
                var error = $root.awesomepackage.mPoint.verify(message.uT);
                if (error)
                    return "uT." + error;
            }
            if (!$util.isInteger(message.t))
                return "t: integer expected";
            if (!$util.isInteger(message.i))
                return "i: integer expected";
            return null;
        };

        /**
         * Creates a mLine message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.mLine
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.mLine} mLine
         */
        mLine.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.mLine)
                return object;
            var message = new $root.awesomepackage.mLine();
            if (object.uOI != null)
                message.uOI = object.uOI | 0;
            if (object.uTI != null)
                message.uTI = object.uTI | 0;
            if (object.uO != null) {
                if (typeof object.uO !== "object")
                    throw TypeError(".awesomepackage.mLine.uO: object expected");
                message.uO = $root.awesomepackage.mPoint.fromObject(object.uO);
            }
            if (object.uT != null) {
                if (typeof object.uT !== "object")
                    throw TypeError(".awesomepackage.mLine.uT: object expected");
                message.uT = $root.awesomepackage.mPoint.fromObject(object.uT);
            }
            if (object.t != null)
                message.t = object.t | 0;
            if (object.i != null)
                message.i = object.i | 0;
            return message;
        };

        /**
         * Creates a plain object from a mLine message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.mLine
         * @static
         * @param {awesomepackage.mLine} message mLine
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        mLine.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.uOI = 0;
                object.uTI = 0;
                object.uO = null;
                object.uT = null;
                object.t = 0;
                object.i = 0;
            }
            if (message.uOI != null && message.hasOwnProperty("uOI"))
                object.uOI = message.uOI;
            if (message.uTI != null && message.hasOwnProperty("uTI"))
                object.uTI = message.uTI;
            if (message.uO != null && message.hasOwnProperty("uO"))
                object.uO = $root.awesomepackage.mPoint.toObject(message.uO, options);
            if (message.uT != null && message.hasOwnProperty("uT"))
                object.uT = $root.awesomepackage.mPoint.toObject(message.uT, options);
            if (message.t != null && message.hasOwnProperty("t"))
                object.t = message.t;
            if (message.i != null && message.hasOwnProperty("i"))
                object.i = message.i;
            return object;
        };

        /**
         * Converts this mLine to JSON.
         * @function toJSON
         * @memberof awesomepackage.mLine
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        mLine.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return mLine;
    })();

    awesomepackage.mProp = (function() {

        /**
         * Properties of a mProp.
         * @memberof awesomepackage
         * @interface ImProp
         * @property {boolean} isUsed mProp isUsed
         * @property {number} id mProp id
         * @property {awesomepackage.ImPoint} point mProp point
         * @property {number} type mProp type
         */

        /**
         * Constructs a new mProp.
         * @memberof awesomepackage
         * @classdesc Represents a mProp.
         * @implements ImProp
         * @constructor
         * @param {awesomepackage.ImProp=} [properties] Properties to set
         */
        function mProp(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * mProp isUsed.
         * @member {boolean} isUsed
         * @memberof awesomepackage.mProp
         * @instance
         */
        mProp.prototype.isUsed = false;

        /**
         * mProp id.
         * @member {number} id
         * @memberof awesomepackage.mProp
         * @instance
         */
        mProp.prototype.id = 0;

        /**
         * mProp point.
         * @member {awesomepackage.ImPoint} point
         * @memberof awesomepackage.mProp
         * @instance
         */
        mProp.prototype.point = null;

        /**
         * mProp type.
         * @member {number} type
         * @memberof awesomepackage.mProp
         * @instance
         */
        mProp.prototype.type = 0;

        /**
         * Creates a new mProp instance using the specified properties.
         * @function create
         * @memberof awesomepackage.mProp
         * @static
         * @param {awesomepackage.ImProp=} [properties] Properties to set
         * @returns {awesomepackage.mProp} mProp instance
         */
        mProp.create = function create(properties) {
            return new mProp(properties);
        };

        /**
         * Encodes the specified mProp message. Does not implicitly {@link awesomepackage.mProp.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.mProp
         * @static
         * @param {awesomepackage.ImProp} message mProp message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mProp.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isUsed);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.id);
            $root.awesomepackage.mPoint.encode(message.point, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
            writer.uint32(/* id 4, wireType 0 =*/32).int32(message.type);
            return writer;
        };

        /**
         * Encodes the specified mProp message, length delimited. Does not implicitly {@link awesomepackage.mProp.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.mProp
         * @static
         * @param {awesomepackage.ImProp} message mProp message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        mProp.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a mProp message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.mProp
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.mProp} mProp
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mProp.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.mProp();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.isUsed = reader.bool();
                    break;
                case 2:
                    message.id = reader.int32();
                    break;
                case 3:
                    message.point = $root.awesomepackage.mPoint.decode(reader, reader.uint32());
                    break;
                case 4:
                    message.type = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("isUsed"))
                throw $util.ProtocolError("missing required 'isUsed'", { instance: message });
            if (!message.hasOwnProperty("id"))
                throw $util.ProtocolError("missing required 'id'", { instance: message });
            if (!message.hasOwnProperty("point"))
                throw $util.ProtocolError("missing required 'point'", { instance: message });
            if (!message.hasOwnProperty("type"))
                throw $util.ProtocolError("missing required 'type'", { instance: message });
            return message;
        };

        /**
         * Decodes a mProp message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.mProp
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.mProp} mProp
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        mProp.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a mProp message.
         * @function verify
         * @memberof awesomepackage.mProp
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        mProp.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (typeof message.isUsed !== "boolean")
                return "isUsed: boolean expected";
            if (!$util.isInteger(message.id))
                return "id: integer expected";
            {
                var error = $root.awesomepackage.mPoint.verify(message.point);
                if (error)
                    return "point." + error;
            }
            if (!$util.isInteger(message.type))
                return "type: integer expected";
            return null;
        };

        /**
         * Creates a mProp message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof awesomepackage.mProp
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {awesomepackage.mProp} mProp
         */
        mProp.fromObject = function fromObject(object) {
            if (object instanceof $root.awesomepackage.mProp)
                return object;
            var message = new $root.awesomepackage.mProp();
            if (object.isUsed != null)
                message.isUsed = Boolean(object.isUsed);
            if (object.id != null)
                message.id = object.id | 0;
            if (object.point != null) {
                if (typeof object.point !== "object")
                    throw TypeError(".awesomepackage.mProp.point: object expected");
                message.point = $root.awesomepackage.mPoint.fromObject(object.point);
            }
            if (object.type != null)
                message.type = object.type | 0;
            return message;
        };

        /**
         * Creates a plain object from a mProp message. Also converts values to other types if specified.
         * @function toObject
         * @memberof awesomepackage.mProp
         * @static
         * @param {awesomepackage.mProp} message mProp
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        mProp.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.isUsed = false;
                object.id = 0;
                object.point = null;
                object.type = 0;
            }
            if (message.isUsed != null && message.hasOwnProperty("isUsed"))
                object.isUsed = message.isUsed;
            if (message.id != null && message.hasOwnProperty("id"))
                object.id = message.id;
            if (message.point != null && message.hasOwnProperty("point"))
                object.point = $root.awesomepackage.mPoint.toObject(message.point, options);
            if (message.type != null && message.hasOwnProperty("type"))
                object.type = message.type;
            return object;
        };

        /**
         * Converts this mProp to JSON.
         * @function toJSON
         * @memberof awesomepackage.mProp
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        mProp.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return mProp;
    })();

    return awesomepackage;
})();